Exercice N° 1
Transcription
Exercice N° 1
MPSI/PCSI TD d’informatique Pr. Youssef Ouassit Algorithmique et programmation « Porté des variables, dictionnaires » Exercice N° 1 : Un météorologiste souhaite améliorer l’efficacité du traitement des données qu’il utilise (tableau de température moyenne mensuelle ci-dessous). Son objectif étant de réaliser des traitements statistiques, il décide d’utiliser les structures des données du langage Python. France … Australie … … … … Janvier 06 … 35 Décembre 08 … 30 En imposant que tous les pays aient 12 températures mensuelles et qu’elles soient classées dans le même ordre, le météorologiste utilise la liste mois permettant de fixer l’ordre des températures ainsi que le nom de chaque mois, et le dictionnaire Températures. On suppose avoir ces deux variables globales : Temperatures = { "France" :[06, 05 … 08], …,"Australie" :[ 35,… ,30] } Mois = ["Janvier", … , "Décembre"] Question 1 : Manipulation des données Question 1.1 : Donner l’instruction permettant d’afficher en France la température du mois de février sous la forme « France février 05 ». Question 1.2 : Ecrire une fonction AfficheMois(mois), ayant pour paramètre le nom d’un mois, et qui affiche pour tous les pays la température du mois comme précédemment. Question 1.3 : Afin de pouvoir modifier ses données, le météorologiste souhaite utiliser deux fonctions que vous implanterez en python : a) La Fonction AjoutPays(pays, temps) qui prend comme paramètre le nom d’un pays ainsi que la liste des températures associées à ce pays et l’ajoute au dictionnaire Temperatures. Par exemple AjoutPays("Bresil",[25,….23]). b) La Fonction ModificationPaysMois(pays, mois, val) qui prend comme paramètre d’entrée le nom du pays, le nom du mois, la valeur de la nouvelle température. Cette fonction doit modifier la valeur de la température du pays pour le mois indiqué. Par exemple ModificationPaysMois("France", "Janvier", 08) doit modifier la valeur de la température en France au mois de Janvier (ici 08 remplaçant la valeur 06). 1 Question 2 : Calcul statistique Question 2.1 : Donner la fonction MoyennePays(pays) qui pour un pays donné en paramètre d’entrée donne la moyenne annuelle des températures. Question 2.2 : Donner la fonction moyenneMois(mois) qui pour un mois donné (par exemple Mars) donne la moyenne des températures de tous les pays. Question 2.3 : Donner la fonction MoyenneMax() qui donne le pays dont la moyenne annuelle des températures est la plus élevée. Exercice N° 2 : (Gestion Café & Restaurant) On veut faire la gestion des commandes dans un café & restaurant qui contient 10 tables. Pour cela, on va représenter la liste des commandes faites par les clients sous forme d’une variable globale qui a la structure suivante : COMMANDES = [ {"cmd": "C1", "table": "T1", "time" : "08:20", "orders": [ [1, "Chocolat chaud", 10.00], [2, "Petit Pain", 5.00], [2, "Jus d’orange", 9.00] ]}, {"cmd": "C2", "table": "T4", "time": "08:23", "orders": [ [1, "The", 8.00], [2, "Omelette au fromage", 4.00] ]}, {"cmd": "C3", "table": "T3", "time": "08:00", "orders": [ [2, "Café léger", 9.00] ]}, {"cmd": "C4", "table": "T7", "time": "09:00", "orders": [ [2, "Chocolat chaud", 10.00], [1, "Fourier", 7.00] ]}, {"cmd": "C5", "table": "T1", "time": "09:15", "orders": [ [1, "Chocolat chaud", 10.00], [2, "Petit Pain", 5.00], [2, "Jus d’orange", 10.00] ]}, {"cmd": "C6", "table": "T9", "time": "10:20", "orders": [ [1, "Jus avocat", 19.00], [1, "Petit Pain", 5.00] ]} ] Chaque commande est un dictionnaire contenant 4 informations : Le numéro de la commande : Exemple C1 La table qui a fait la commande : Exemple T1 L’heure de la commande : Exemple 08:20 2 La liste des lignes de commandes : Exemple [ [1, «Chocolat chaud», 10.00], [2, «Petit Pain», 5.00], [2, «Jus d’orange», 9.00] ], Question 1 (Ajouter commande) Ecrire une fonction «ajouter_cmd (table, heure, lignescommandes)» qui ajoute une commande à la liste GLOBAL des commandes « COMMANDES ». Le numéro de commande est attribué automatique par le système par incrémentation par 1 par rapport à la dernière commande. La fonction prend 3 paramètres : La table, l’heure et la liste des lignes de commandes Question 2 (ligne commande) Ecrire une fonction « affiche_ligne_cmd( lignecmd ) » qui affiche une ligne de commande passée en paramètre en une seule ligne sous la forme suivante : «1 chocolat chaud 10.00 dhs/unit » Question 3 (total d’une commande) Ecrire une fonction « totalcmd( cmd ) » qui retourne le total de la commande cmd passée en paramètre. Exemple : totalcmd (COMMANDES [0]) retourne 38.00 Question 4 (imprimer ticket) Ecrire une fonction « imprimer( cmd ) » qui imprime en plusieurs lignes sur papier la commande passée en paramètre sous la forme suivante : -------------------------------------------------------------------------------------------Num commande : C1 Table : T1 à 08 :20 a commandé -------------------------------------------------------------------------------------------Qte Article Prix -------------------------------------------------------------------------------------------1 Chocolat chaud 10.00 dhs/unit 2 Petit Pain 05.00 dhs/unit 2 Jus Orange 09.00 dhs/unit -------------------------------------------------------------------------------------------Total 38.00 dhs N.B : On suppose que la fonction print de PYTHON peut imprimer sur papier. 3 Question 5 (Résumé commande) Ecrire une fonction « resume_cmd( cmd ) » qui affiche sur écran la commande passée en paramètre en une seule ligne sous la forme suivante : « C1 T1 à 08 :20 a fait un total de : 38.00 dhs » Question 6 (Recette) Ecrire une fonction « recette() » qui calcule et retourne comme résultat la recette instantanée faite par le café. Question7 (Liste commandes) Ecrire une fonction « affiche_tout() » qui affiche sur écran la liste des résumés de toutes les commandes de la liste globale COMMANDES, suivie de la recette. 4