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