Exercices TD Fonctions en Python
Télécharger PDFUniversité de Tunis
Institut Préparatoire aux Etudes d’Ingénieur de Tunis
Filières : MP&PC
Année Universitaire 2025 - 2026
Série N°3 : Les fonctions en Python
Exercice 1 : Suite de Syracuse
La suite de Syracuse est définie par :
- Un+1 = Un si Un = 1
- Un+1 = Un/2 si Un est pair
- Un+1 = 3Un + 1 sinon
On dit que cette suite atteint toujours 1 au bout d’un certain nombre d’itérations.
- Écrire la fonction Saisir_entier qui permet la saisie d’un entier strictement positif. La fonction est censée gérer les différentes exceptions qui peuvent être levées.
- Écrire la fonction Saisir_liste qui permet de créer et de retourner une liste comprenant n entiers strictement positifs.
- Écrire la fonction associe qui à un entier a donné associe 1, a/2 ou 3a + 1 selon les cas.
- Écrire une fonction Nbr_iter permettant de calculer le nombre d’itérations minimum nécessaire pour aboutir à 1 à partir d’un entier a donné.
- Écrire la fonction Nbr_iter_min prenant en entrée une liste L d’entiers strictement positifs et permettant de calculer le nombre d’itérations minimum nécessaire pour que tous les éléments de L aboutissent à 1.
- Écrire un script qui permet de saisir une liste de n entiers strictement positifs et d’afficher le nombre d’itérations minimum.
Exercice 2 : Méthode de Newton
La méthode de Newton consiste à chercher une approximation de la solution de l’équation f(x)=0. Cette méthode consiste à calculer une suite de valeurs xn convergeant vers cette solution. Partant d’une valeur de départ x0, la méthode calcule itérativement :
xn+1 = xn − f(xn) / f′(xn)
Le calcul s’arrête lorsque la différence |xn+1 − xn| < ɛ ou qu’un nombre maximal d’itérations est dépassé.
- Définir une fonction lambda intitulée f telle que f(x) = cos x − x2.
- Définir une fonction lambda intitulée df telle que df est la dérivée de f.
- Définir une fonction intitulée Newton qui prend en paramètres une fonction, une valeur de départ, un nombre maximal d’itérations et une valeur par défaut (ɛ =10-12) et retourne l’approximation de la racine.
- Écrire un script qui permet de chercher une approximation de la solution de f.
Exercice 3 : Méthode de Horner
Considérons un nombre N positif tel que N=an-1an-2…….a2a1a0 où n désigne le nombre de chiffres du nombre N, le nombre N est bien représenté dans la base b si et seulement si ∀ i ∈ [0, n − 1] nous avons 0 ≤ ai ≤ b − 1.
Le résultat de la conversion du nombre Nb en base 10 est noté N10. Une méthode de conversion d’une base b à la base 10 consiste à appliquer la formule de Horner suivante :
N10 = a0 + b × (a1 + b × (… + b × (an−2 + b × an−1) … ))
- Écrire la fonction verifb qui permet de vérifier si un entier N est bien représenté dans une base b.
- Écrire la fonction Saisir qui permet de saisir un entier supérieur ou égal à une valeur Nmin.
- Écrire la fonction SaisirN qui permet de saisir un entier N supérieur ou égal à 0 et bien représenté dans une base b.
- Écrire une fonction qui permet de retourner la conversion d’un entier N en base 10 selon la méthode d’Horner.
Exercice 4 : Livre de recettes
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.
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.
Une valeur est représentée par un tuple qui comprend un ensemble contenant les ingrédients de la recette et une chaîne 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 chaînes de caractères.
- Écrire 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.
- Écrire 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).
- Écrire une fonction Ingredients(LR) qui, à partir d’un livre de recettes LR, retourne l’ensemble des ingrédients apparaissant dans les recettes de LR.
- Écrire 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.
- Écrire 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).
- Écrire 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.
Dans le cas où le nom de la recette ne figure pas dans le livre, le message « Recette introuvable » sera affiché.
FAQ
Qu'est-ce que la suite de Syracuse ?
La suite de Syracuse est une suite d'entiers définie par des règles spécifiques qui aboutissent toujours à 1 après un certain nombre d'itérations.
Comment fonctionne la méthode de Newton ?
La méthode de Newton est une méthode itérative pour trouver une approximation de la solution d'une équation f(x) = 0 en utilisant la dérivée de la fonction.
Qu'est-ce que la méthode de Horner ?
La méthode de Horner est une méthode efficace pour évaluer les polynômes et convertir des nombres d'une base à une autre.