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.
Janvier
Décembre
France
06
08
Australie
35
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).
2
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
3
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.
4
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.
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !