Vous êtes sur la page 1sur 2

Université de Tunis AU: 2018-2019

Institut Préparatoire aux Etudes d’Ingénieurs de Tunis

DS d'Informatique N°2
Classes : 1ère année MP et PC
Durée : 1 heure Documents non autorisés

Exercice 1:
Dans cet exercice, on se propose d’écrire des fonctions qui permettent de manipuler un livre
de recettes digital. Chaque recette dans le livre décrit l’ensemble des ingrédients qui la
composent et les étapes à suivre.
Ainsi, le livre de recettes sera modélisé en python par un dictionnaire tel que :
- les clés sont les noms des différentes recettes.
- les valeurs correspondent aux ingrédients et étapes des recettes.
Ainsi, une valeur est représentée par un tuple qui comprend un ensemble contenant
les ingrédients de la recette et une chaine décrivant les différentes étapes.
Le dictionnaire LR se présente donc, sous la forme suivante:
LR={nom_recette1 :({i1,i2,i3...}, descriptif_1), nom_recette2 :({i1,i2...},descriptif_2) …}
où, nom_recette1, nom_recette2, i1, i2, i3, descriptif1 et descriptif2 sont des chaines de
caractères.
On donne les commandes Python suivantes :
 e1.intersection(e2) : qui retourne un ensemble contenant les éléments communs aux
ensembles e1 et e2.
 e1.union(e2) : qui retourne un ensemble contenant les éléments des deux ensembles
e1 et e2.
Travail demandé :
1- Ecrire une fonction Afficher_Recette(nom_recette, LR) qui à partir d’un livre de
recettes LR et un nom de recette permet d’afficher les ingrédients
et le descriptif de la recette. Le format de l’affichage sera comme suit :
Nom de la recette

Ingredient1
Ingrdient2
…….
Ingredientn

Descriptif de la recette.
Dans le cas où le nom de la recette ne figure pas dans le livre, le message « Recette
introuvable » sera affiché.
2- Ecrire une fonction Suggestion_Recette(e,LR) qui à partir d’un livre de recettes LR et
un ensemble d’ingrédients e, retourne l’ensemble des recettes qui utilisent ces
ingrédients. (Une recette peut utiliser des ingrédients en plus de ceux
de l’ensemble e).

Page 1/2
3- Ecrire une fonction Ingredients(LR) qui, à partir d’un livre de recettes LR, retourne
l’ensemble des ingrédients apparaissant dans les recettes de LR.
4- Ecrire une fonction Table_Ingredients(LR) qui, à partir d’un livre de recettes LR, crée
et retourne la table d’ingrédients permettant d’associer à chaque ingrédient
l’ensemble des recettes qui l’utilisent. Cette table sera représentée par un dictionnaire
où la clé est un ingrédient et la valeur associée est un ensemble contenant les recettes
concernées.
5- Ecrire une fonction Ingredient_Principal(LR) qui, à partir d’un livre de recettes LR,
crée la table d’ingrédients TI et retourne l’ensemble des ingrédients les plus utilisés.
(les ingrédients qui sont utilisés dans le maximum de recettes).
6- Ecrire une fonction Recettes_Sans(LR,i) qui, à partir d’un livre de recettes LR et un
ingrédient i, retourne un nouveau livre de recettes ne contenant que les recettes de LR
qui n’utilisent pas l’ingrédient i.

Exercice 2:
Soit L une liste composée uniquement de 0 et 1. On voudrait changer les valeurs de chaque
séquence de 1 (suite consécutive de 1) appartenant à la liste L de telle sorte que les éléments
de la première séquence aient la valeur val, de la deuxième aient la valeur val+2, de la 3ème
aient la valeur val+4 et ainsi de suite.
Exemple :
Avant modification : L= [0,1,1,0,1,0,1,1,1,0,1]
val=3
Après modification : L= [0, 3, 3, 0, 5, 0, 7, 7, 7, 0, 9]

Ecrire en python :
1- Une fonction Saisie(Nmin,Nmax) qui saisit et retourne un entier a tel que
Nmin ≤ a ≤ Nmax.
2- Une fonction récursive Liste(L,N) qui remplit une liste L de taille N par des valeurs 0
ou 1.
3- Une fonction Position(L) qui permet de chercher la position de la première apparition
du chiffre 1 dans une liste L. Cette fonction retourne None si elle est constituée
seulement de 0.
4- Une fonction récursive Changer(L,val) qui permet de modifier la valeur des
différentes séquences de 1 d’une liste L selon la méthode définie ci-dessus.
5- Le programme principal qui permet de :
 Saisir un entier N (1≤N≤50) et une valeur val (1≤val≤100).

 Saisir une liste L de N entiers de valeurs 0 ou 1.

 Afficher la liste L avant et après la modification des différentes séquences de 1.

Bon travail

Page 2/2

Vous aimerez peut-être aussi