Slt merci de traiter ce exo pour moi

Résolu/Fermé
serignesaliou Messages postés 3 Date d'inscription vendredi 17 juin 2011 Statut Membre Dernière intervention 18 juin 2011 - 18 juin 2011 à 01:37
 nicocorico - 18 juin 2011 à 10:28
Bonjour,



Question 4 (BONUS : 20 pts) Programmation d'une machine à café

Vous devez écrire un algorithme permettant de contrôler une machine à café fonctionnant comme
suit :
Il y a 4 sélections possibles de cafés :
A. petit café noir
B. grand café noir (volume double de café)
C. petit café au lait
D. grand café au lait (volume double de café et double de lait)

Lorsqu'une sélection de café est faite, le montant à introduire est affiché par la machine. La machine est ensuite prête à accepter les pièces. Lorsqu'une pièce est introduite, elle est stockée dans un testeur où elle est lue par la machine qui l'a détectée. S'il s'agit d'une pièce de 5, 10, 25 cents ou 1 $ la machine l'accepte et l'envoie dans sa caisse, sinon elle la retourne. Après chaque acceptation, la machine indique le montant qu'il reste à introduire. La machine réitère cette tâche, jusqu'à ce que le bouton `mise en marche' ou `annulation' soit actionné. S'il s'agit d'une annulation, la machine retourne le montant déjà introduit et la procédure se termine. S'il s'agit d'une demande de mise en marche, il y a alors deux possibilités :
- soit le montant déjà introduit est insuffisant. La machine affiche alors le message `CRÉDIT INSUFFISANT' puis retourne dans l'état où elle est prête à recevoir des pièces ou à faire une annulation.
- soit le montant est suffisant. La machine lance alors la fabrication du café sélectionné, puis retourne la monnaie et la procédure se termine. Pour rendre la monnaie, la machine utilise un algorithme vorace, qui donne le maximum possible de pièces de 1$ puis le maximum de 25 cents puis de 10 cents et enfin de 5 cents.

Hypothèses :
- La machine possède une infinité de pièces de 1$, 25, 10 et 5 cents.
- La machine ne manque jamais ni de gobelets ni de café ni de lait.
Vous devez donc écrire un algorithme implémentant la procédure mise en marche lors de la sélection d'une boisson. Vous devez considérer que le système qui exécutera votre algorithme peut effectuer les instructions élémentaires de base : opérations arithmétiques, logiques, relationnelles, affectations, structures de contrôle, entrée\sortie... Ainsi que les primitives suivantes :
- LIRE_SÉLECTION s: qui attribue à la variable s une des 4 valeurs A,B,C,D correspondant respectivement à petit café noir, grand café noir, petit café au lait, grand café au lait.
- DÉTECTER_PIÈCE d: qui attribue à la variable d la valeur VRAI ou FAUX selon qu'une nouvelle pièce a été introduite ou non dans le testeur.
- LIRE_PIÈCE p: qui attribue à la variable p la valeur 1 pour une pièce de 1 $ ; 25, 10, ou 5, respectivement pour les pièces de 25, 10 ou 5 cents et la valeur 0 sinon.
- DÉTECTER_ ANNULATION a : qui attribue à la variable a la valeur VRAI ou FAUX selon que le bouton annulation a été enclenché ou non.
- DÉTECTER_MISE_EN_MARCHE m : qui attribue à la variable m la valeur VRAI ou FAUX selon que le bouton mise en marche a été enclenché ou non.
- ENCAISSER_PIECE: qui envoie la pièce du testeur vers la caisse.
- RETOURNER_PIECE : qui fait ressortir la pièce du testeur vers le trou pour la monnaie.
- DONNER_1$ : qui fait tomber une pièce de 1 $ dans le trou pour la monnaie.
- DONNER_25c : qui fait tomber une pièce de 25 cents dans le trou de la monnaie.
- DONNER _10c : qui fait tomber une pièce de 10 cents dans le trou de la monnaie.
- DONNER _5c: qui fait tomber une pièce de 5 cents dans le trou de la monnaie.
- DONNER _PETIT_GOBELET: qui fait tomber un petit gobelet dans le porte gobelet.
- DONNER_GRAND_GOBELET: qui fait tomber un grand gobelet dans le porte gobelet.
- VERSER_CAFE: qui fait couler un volume de café correspondant au volume d'un petit café.
- VERSER_LAIT: qui fait couler un volume de lait correspondant à celui nécessaire à un petit café. Vous disposerez aussi de 2 constantes PRIX-GRAND, PRIX-PETIT correspondant aux prix respectifs du grand café et du petit café.
Votre algorithme devra comporter au moins les 4 blocs suivants :
- Bloc principal : qui gère toute la procédure mise en oeuvre lors de la sélection d'un produit.
C'est à dire accepter des pièces tant que l'annulation n'est pas enclenchée et que la mise en marche n'a pas été activée. Puis faire la commande éventuellement et rendre l'argent
- Bloc accepter les pièces : qui prend des pièces jusqu'à ce qu'il y ait une annulation ou une mise en marche demandée. C'est aussi dans ce bloc qu'a lieu l'affichage du montant qu'il reste à introduire. Remarque : La sortie de ce bloc doit indiquer pourquoi il s'est terminé et quel est le montant déjà encaissé.
- Bloc servir la commande : qui prépare le café correspondant à une sélection.
- Bloc rendre l'argent : qui sera utile pour rendre la monnaie après avoir servi la commande où en cas d'annulation. Remarque : Au sujet du bloc accepter les pièces, assurez-vous que l'attente de l'introduction d'une pièce n'empêche pas l'annulation de la commande ou la mise en marche. Il faut donc tester cette condition d'arrêt, puis vérifier la présence d'une pièce, s'il y a une pièce, faire le nécessaire, sinon re-tester la condition d'arrêt et ainsi de suite.


Spécifications sur l'ensemble du travail pratique:

o Rappel : chacun de vos blocs doit comporter les commentaires de spécification, qui sont :

Objectif : qui présente le problème à être résolu par le bloc,
Méthode : qui donne un aperçu de la résolution du problème,
Besoin : qui énumère tous les besoins en information afin que l'objectif du bloc puisse être atteint,
Entrée : qui identifie les valeurs passées en paramètres d'entrée au bloc,
Sortie : qui identifie les valeurs passées en paramètres de sortie et la valeur retournée par le bloc,
Connu : qui identifie les constantes utilisées par le bloc.
Résultat : qui identifie les effets de bord du bloc (dans le cadre de notre cours cela consiste aux impressions réalisées par le bloc).
Hypothèses: commentaires qui donnent les assertions supposées vraies pour le bon fonctionnement du bloc; ces hypothèses couvrent généralement les valeurs permises pour les paramètres d'entrée du bloc ainsi que les données lues dans le bloc.

o Ce travail doit être fait par équipe de 4 étudiants maximum et doit être rendu avant ou le 06 Juin 2011 au plus tard à 00h. Tout travail reçu en retard se verra donner une pénalité de 10 points par jour de retard, pour un maximum de 5 jours! Nous ne ferons AUCUNE exception pour AUCUNE considération que ce soit. Dans de rares circonstances liées à des raisons médicales ou de mortalité, l'étudiant(e), après entente avec le professeur concerné (avant la date de remise), pourra bénéficier d'un court délai supplémentaire pour nous faire parvenir son travail.

o La remise doit se faire par courrier électronique à l'adresse : cheikh-tidiane@student-partners.com

2 réponses

Utilisateur anonyme
18 juin 2011 à 01:40
Bonsoir,


Merci de lire la charte de comment ça marche.

Nous ne sommes pas là pour faire les exercices à votre place

https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
2
Tout à fait d'accord, d'autant plus que l'exercice ne comporte pas de difficultées particulières. En programmation, on refléchi, on s'investi, sinon mieux vaut passer son chemin...
0