TP Noté Sujet 4 - Emilie Cravero

Transcription

TP Noté Sujet 4 - Emilie Cravero
PROGRAMMATION EN LANGAGE C
L1
Année 2006 - 2007
TP NOTE 1 : Quelques exercices de synthèse
Vous disposez d1h30 pour traiter les différents exercices. Vous pouvez traiter les
exercices dans l'ordre que vous voulez.
En ce qui concerne la notation : Il n'est pas indispensable de terminer tous les
exercices pour obtenir une note correcte. Il vaut mieux rendre 1 exercice complet que 2
exercices incomplets !
La remise des exercices se fait par mail à l'adresse [email protected]. Bon courage et
prenez le temps de réfléchir avant de vous ruer sur le clavier.
Exercice 1 : La machine à café.
Une machine à café dispose de plusieurs compartiments de capacité limitée : un
compartiment à café, un compartiment à lait, un compartiment à chocolat, un compartiment à
sucre et un distributeur de cuillers en plastique (les "touillettes"). La machine est connectée au
réseau urbain de distribution d'eau potable, donc on considère que la quantité d'eau disponible
est infinie. Les compartiments stockent au maximum 15 dosettes de chaque produit, sauf le
distributeur de touillettes qui en contient 50.
Les boissons que l'on peut commander sont :
Café court : consomme une dosette de café;
Café long : idem que café court;
Café au lait : consomme une dosette de café, une de lait;
Capuccino : consomme une dosette de café, et deux de lait (dont une pour la mousse);
Café viennois : consomme une dosette de café, une de chocolat, une de lait;
Chocolat à l'eau : consomme une dosette de chocolat;
Chocolat au lait : consomme une dosette de chocolat et une de lait.
TP noté n° 1
1/2
PROGRAMMATION EN LANGAGE C
L1
Année 2006 - 2007
Pour toutes les boissons à base de café, on peut choisir d'incorporer du sucre ou non.
Une touillette est distribuée pour chaque boisson commandée.
Ecrivez un programme qui simule le fonctionnement de cette machine : l'utilisateur
choisit une boisson, et si la machine dispose d'assez de produits, le programme affiche un
message "boisson prête !", et doit bien entendu mettre à jour les quantités de dosettes. Dans le
cas contraire, il affiche un message "plus assez de xxxxxx", où xxxxx est le nom du (ou des)
produit(s) manquant(s).
Une fois ceci fait, le programme repropose un choix de boisson.
Au départ, les compartiments ne sont pas forcément remplis, vous pouvez choisir le
nombre initial de dosettes de chaque compartiment.
Exercice 2 : Réactions en chaîne.
L'agent Smith (version 2) a pris la pénible habitude de se dupliquer sans
modération. Initialement, il n'existe qu'à un seul exemplaire, mais il risque
de devenir rapidement envahissant, ce que l'on peut regretter en raison de son
caractère fort peu jovial. Un Agent Smith version 2 peut se dupliquer une fois
par minute, auquel cas il fait apparaître un Agent Smith version 1. Au bout d'une minute, 1
agent Smith version 1 se transforme en Agent Smith version 2 capable de se dupliquer.
Cependant, dès que le nombre d'Agent Smith version 2 dépasse 100 000, Neo intervient et en
élimine 10 000 par minute, sans s'arrêter, même si leur nombre devient inférieur à 100 000. Il
en profite également pour ne laisser survivre que 5 000 Agent Smith version 1.
Neo sera-t-il submergé ou arrivera-t-il à éliminer l'Agent Smith ? Ecrivez un programme qui
affiche les effectifs d'Agent Smith version 1 et version 2 minute par minute. Si Neo arrive à
tous les éliminer, au bout de combien de temps y arrivera-t-il ? Votre programme doit
également afficher un message lorsque le seuil de 100 000 Agent Smith version 2 est atteint.
TP noté n° 1
2/2

Documents pareils