Bonjours à tous.
Voila, je suis un etudiant en premiere année d'informatique ^^ . Je viens donc de faire mon initiation à l'algorithmique et au C :p
Je trouve que c'est très interessant mais assez complexe :o .
J'ai un travail a rendre pour cette semaine mais je ne sais vrement pas par ou commencer.
Si quelqu'un peut m'aider ou me donner des conseil ça serait très sinpa.
merci d'avance!
Devoir de travaux pratiques à rendre le 3 décembre 2010 avant 16 heures
Les étudiants doivent rendre :
• Un dossier d'analyse et programmation, sur papier, dont le plan est fourni à la fin de ce sujet. Celui-ci peut être écrit avec un traitement de texte ou à la main, mais dans tous les cas il doit être soigné, et sa forme (présentation, orthographe) sera prise en compte dans la notation. (Noter l'adresse électronique à côté du nom des étudiants).
• Le listing papier des trois programmes source en langage C qui constituent ce TP. • une archive (.zip, rien d'autre) contenant les trois programmes source en C.
Chaque étudiant présentera son travail oralement à une date qui lui sera précisée
1. Présentation du sujet
Ce sujet est composé de trois parties. Les deux premières sont indépendantes : • simulation d'un petit distributeur de boissons, • simulation d'un automate monnayeur qui encaisse un paiement et rend la monnaie.
La troisième partie est un enchaînement des deux précédentes : elle simule un distributeur de boissons, qui encaisse le prix de la boisson et rend la monnaie.
Pour les deux premières parties les étudiants devront :
• rédiger une analyse du problème et de la solution apportée,
• écrire l'algorithme du programme principal et des fonctions,
• programmer l'algorithme en langage C,
• prévoir un jeu de tests destinés à vérifier que le programme est juste dans toutes les classes de cas,
• exécuter le programme en appliquant tous les tests prévus,
• rédiger un compte-rendu sur l'application des tests.' Pour la troisième partie les étudiants devront :
• expliquer les modifications apportées à chacune des deux parties et la manière dont est réalisé l'enchaînement,
• tester le programme C résultant de l'enchaînement des deux précédents, • donner un ou deux exemples d'exécution du programme complet
2. Conseils
Un effort particulier devra être fait sur la structuration des algorithmes par un usage approprié de fonctions chaque fois que cela est possible, ou, à défaut, par une mise en page claire et lisible des différentes parties qui constituent les algorithmes et les programmes.
Les programmes doivent être correctement présentés (lisibilité, indentation) et contenir de nombreux commentaires sur les rôles des variables, les spécifications des fonctions, les instructions importantes et tout ce qui permet au lecteur de comprendre le code.
Les exemples d'exécutions qui sont données dans ce sujet ne sont pas destinés à être reproduits au caractère près, mais sont donnés pour montrer ce qui est attendu. Les étudiants restent libres de l'ergonomie de leurs programmes.
Année 2010-2011 1/4 Annie TartierUniversité Internationale de Rabat Algorithmique et Programmation 1 - TP à rendre
3. Première partie : distributeur de boissons
On veut simuler un petit distributeur de boissons. On y propose du thé, du café ou du chocolat. On peut choisir une boisson sans sucre, sucrée ou très sucrée. Enfin on peut opter pour un supplément de lait.
Pour commander du café, l'utilisateur devra entrer le code "CAF", pour commander du chocolat il entrera le code "CHO" et pour commander du thé, le code "THE".
Pour simplifier le travail de programmation, tous les calculs seront faits en entiers. On parle donc en centimes d'euros, même si certains affichages mentionnent des euros.
Le café et le thé coûtent 40 centimes, le chocolat 60 centimes. Une portion de sucre coûte 5 centimes (le choix boisson sucrée correspond à une portion de sucre et le choix boisson très sucrée correspond à deux). Le supplément de lait coûte 15 centimes.
Le programme qui simule le distributeur pose à l'utilisateur les trois questions qui permettent de déterminer exactement de quoi est faite la boisson souhaitée. Une fois les données récoltées, le programme apporte deux réponses :
•
•
une phrase construite sur l'un des modèles suivants, toutes les combinaisons étant possibles :
• • •
"Votre café très sucré sans lait est prêt", "Votre chocolat sucré avec lait est prêt ", "Votre thé non sucré sans lait est prêt".
une phrase annonçant le prix à payer :
• • •
"Vous devez payer 50 centimes", "Vous devez payer 80 centimes", "Vous devez payer 40 centimes",
correspondant aux trois exemples précédents. On donne un exemple de dialogue entre le distributeur et l'usager.
Contrôle de réponse :
• Si l'utilisateur tape un code différent de CAF, de CHO ou de THE, la machine affiche simplement le message "IMPOSSIBLE" et le programme s'arrête.
• Le nombre de portions de sucre et de lait doit être redemandé tant qu'il n'est pas correct. Travail à réaliser
1) Écrire l'algorithme qui simule le fonctionnement de ce distributeur pour le service d'un client. 2) Écrire le programme C qui simule ce distributeur. 3) Établir un jeu de tests qui permettent de vérifier que le programme fonctionne correctement.
Quelle boisson : CAF Combien de doses de sucre (0, 1 ou 2) : Un entier compris entre 0 et 2 : 0 Supplément de lait (0/1) : Un entier compris entre 0 et 1 : 1 ------------------------------------------------------ Votre café non sucré avec lait est prêt Vous devez payer 55 centimes ------------------------------------------------------
Année 2010-2011 2/4 Annie Tartier
Université Internationale de Rabat Algorithmique et Programmation 1 - TP à rendre
4. Deuxième partie : automate monnayeur
On veut simuler un automate qui accomplit les actions suivantes :
• Il demande à l'utilisateur quel est le montant à payer, sous la forme d'un entier compris entre 1 et 1000 centimes.
• Il arrondit cette somme à 5 unités par défaut (par exemple : 340 sera arrondi à 340, 344 sera arrondi à 340, 345 sera arrondi à 345 et 349 sera arrondi à 345).
• Il encaisse le montant sous la forme d'une suite de pièces. Seules six pièces sont autorisées. Ce sont : 1 ou 2 euros et 5, 10, 20 ou 50 centimes. L'encaissement s'arrête automatiquement dès que la somme donnée atteint ou dépasse le montant à payer.
• Il calcule la somme à rendre. • Il annonce les pièces qu'il délivre pour rendre la monnaie en suivant la stratégie suivante : il
examine les pièces de la plus grosse à la plus petite, et calcule chaque fois le plus grand nombre possible qu'il peut délivrer sans dépasser la somme à rendre. On considère que l'automate dispose toujours de toutes les pièces qui lui sont nécessaires.
On donne deux exemples de dialogues entre l'automate et l'usager.
Contrôle de réponse :
• La somme à encaisser doit être redemandée tant qu'elle n'est pas comprise entre 1 et 1000. • Chaque pièce doit être redemandée tant qu'elle ne fait pas partie des pièces acceptées.
Travail à réaliser
1) Écrire l'algorithme qui simule le fonctionnement de cet automate pour le paiement d'un client. 2) Écrire le programme C qui simule cet automate. 3) Établir un jeu de tests qui permettent de vérifier que le programme fonctionne correctement.
----------------- Début de la transaction ----------------- Somme à encaisser (en centimes) Un entier compris entre 1 et 1000 : 38 Reste à payer : 35
Piece (euros : 2, 1 ; centimes : 50, 20, 10, 5) : 2 Somme à rendre : 1 euro(s) et 65 centimes ---------------------- Retour monnaie ---------------------- 1 pièce(s) de 1 euro
1 pièce(s) de 50 centime(s) 1 pièce(s) de 10 centime(s) 1 pièce(s) de 5 centime(s) ------------------- Transaction terminée -------------------
----------------- Début de la transaction ----------------- Somme à encaisser (en centimes) Un entier compris entre 1 et 1000 : 155 Reste à payer : 155
Piece (euros : 2, 1 ; centimes : 50, 20, 10, 5) : 1 Reste à payer : 55 Piece (euros : 2, 1 ; centimes : 50, 20, 10, 5) : 50 Reste à payer : 5
Piece (euros : 2, 1 ; centimes : 50, 20, 10, 5) : 50 Somme à rendre : 0 euro(s) et 45 centimes ---------------------- Retour monnaie ---------------------- 2 pièce(s) de 20 centime(s)
1 pièce(s) de 5 centime(s) ------------------- Transaction terminée -------------------
Année 2010-2011 3/4 Annie Tartier
Université Internationale de Rabat Algorithmique et Programmation 1 - TP à rendre
5. Troisième partie
Reprendre les deux programmes précédents et construire un troisième programme qui simule un distributeur de boissons qui encaisse le prix de la boisson et rend la monnaie. En résumé :
•
•
•
•
Il demande à l'utilisateur :
• • •
quelle boisson il veut (CAF, CHO ou THE), combien il veut de doses de sucre (0, 1 ou 2), s'il veut un supplément de lait,
Il affiche : • la boisson délivrée selon les phrases décrites en première partie, • le prix en centimes,
Il demande à l'utilisateur : • la suite des pièces que celui-ci donne en paiement, en s'arrêtant dès que la somme est
atteinte ou dépassée, Il affiche :
• les pièces de monnaie qu'il rend à l'utilisateur. Pour réaliser cette fusion des deux programmes, il faudra faire quelques aménagements : parties
à enlever, à déplacer etc.
Travail à réaliser
1) Réaliser tous les aménagements nécessaires pour fusionner les deux programmes. 2) Donner un ou deux exemples d'exécution du programme complet.
6. Plan du dossier
1. Introduction 2. Distributeur de boisson
1. Analyse du problème, présentation de l'organisation choisie 2. Algorithmes : principal et fonctions 3. Présentation des jeux d'essais 4. Remarques critiques sur ce qui a été réalisé
3. Automate monnayeur 1. Analyse du problème, présentation de l'organisation choisie 2. Algorithmes : principal et fonctions 3. Présentation des jeux d'essais 4. Remarques critiques sur ce qui a été réalisé
4. Distributeur et automate 1. Description précise des modifications apportées pour réaliser la fusion 2. Description d'un ou deux exemples 3. Remarques critiques sur ce qui a été réalisé
5. Conclusion générale sur le travail réalisé.
Partager