Université des Sciences et Technologies de Lille
Licence Miage - Programmation 1 - TP
La laverie automatique
Comme toutes les semaines, vous vous rendez à la laverie automatique
de votre quartier faire la lessive.
Les machines à laver y proposent trois
programmes.
| |
|
| 1. Prélavage+lavage |
55 min |
| 2. Lavage sans prélavage |
45 min |
| 3. Lavage express |
30 min |
Il y a foule aujourd'hui et une file d'attente de clients s'est formée.
Connaissant pour chaque personne le programme de lavage, on désire
simuler l'évolution de la file d'attente.
Un paquetage pour la file d'attente
Pour gérer la file d'attente des clients de la laverie, on crée
une structure de file. Une file est une liste chaînée
munie de deux opérations élémentaires : défiler,
c'est-à-dire retirer l'élément en tête de file, et enfiler, c'est-à-dire ajouter un élément à la fin de la
file. Alors qu'une pile fonctionne suivant la règle LIFO
(Last In, First Out), une file est donc régie par le principe
FIFO (First In, First Out).
Le fichier ~touzet/ADA/Laverie/paq_file.ads contient la
spécification d'un paquetage implémentant une file de clients dans
la laverie. Chaque client est caractérisé par le numéro de
programme choisi. À vous d'écrire le corps du paquetage. Testez-le,
avant d'aborder la partie suivante.
La laverie
Écrire un programme avec une procédure Attente, qui prend en
argument une file d'attente, un nombre de machines et détermine
comment se déroule le passage des clients : affectation des machines et temps d'attente.
Par exemple, avec une file d'attente composée de cinq clients choisissant dans
l'ordre les programmes 2, 3, 1, 1 et 3,
et deux machines, la procédure affiche
Client 1: machine 2, 0 min
Client 2: machine 1, 0 min
Client 3: machine 1, 30 min
Client 4: machine 2, 45 min
Client 5: machine 1, 85 min
On accepte le
principe suivant : dès qu'une machine est disponible, le client en
tête de file y met son linge et démarre un nouveau programme sans
délai. De plus, on suppose que, au départ, toutes les machines
sont disponibles. Le parc de machines peut être représenté par un
tableau stockant le temps restant avant la fin du programme courant
pour chaque machine.
Enfin, la file d'attente peut être détruite au fur et à mesure
du traitement.
S'il vous reste du temps
Au lieu d'écrire un paquetage Paq_file spécifique,
il aurait été plus judicieux de concevoir un paquetage
générique.
Modifiez le paquetage Paq_file dans ce sens et adaptez le
programme de laverie.