Vous êtes sur la page 1sur 3

2020 /2021

Matière : Informatique Groupe : PT1, MP1, PC1


TD3 : Les Fonctions Itératives

Exercice 1: Recherche des zéros d’une fonction f par dichotomie (la valeur de x telle que
f(x) = 0)
Si est une fonction continue sur un intervalle , et si , alors il existe au
moins un réel de tel que f . est appelé la racine de . Les différentes étapes de la
méthode dichotomie peuvent être résumées comme suit :
a- Calculer
b- On choisit un nouvel intervalle contenant la racine [a,m] (dans le cas ou f(a)×f(m)<0) ou [m,b]
(dans le cas ou f(b)×f(m)<0)
c- Répéter les étapes 1 et 2 jusqu'à l’obtention de la précision désirée, c’est à dire jusqu’à ce que b-a
<epsilon, epsilon étant la précision désirée
1- Ecrire une fonction zeroDichotomie(f,a,b,epsilon) qui permet de calculer et d’afficher le Zéro
d'une fonction f
2- Définir la fonction f(x)=x2-10 et chercher son zéro sur l'intervalle [3,5] , avec une précision
epsilon=0.000001 en testant la fonction définie précédemment
NB: Utiliser la fonction lambda pour définir la fonction f
3- Calculer la complexité temporelle de cette fonction.
Exercice 2 : Gestion des Erreurs(les exceptions) :
1- Ecrire un programme python qui contient :
 Une fonction saisie_N qui permet de saisir N la taille d’une liste L avec 1<=N<=20.
 Une fonction remplie_liste qui permet de remplir les éléments d’une liste L de N entiers de
trois chiffres chacun.
 Une fonction liste_sym permet de créer la liste LS des nombres symétriques de la liste L.
Rappel: Une liste symétrique est une liste dont tous les éléments sont symétriques (le chiffre d’unité
est égal à au chiffre de la centaine).
NB: Ces fonctions contiennent des blocs try-except qui gèrent des exceptions de type IndexError,
ValueError, la première se produit lorsque l'index fourni dépasse la longueur de la liste et la
deuxième se produit si les éléments saisis ne sont pas de type entier.
 Un programme principal qui fait appel à tous ces fonctions.
2- Calculer la complexité temporelle de ce programme.

1
Exemple :
Pour N = 7
L = [424, 715, 133, 121, 454, 616, 566]
Le programme affichera :
La liste des nombres symétriques est : LS = [424, 121, 454, 616].
Exercice 3
On relève dans certains jours de l’année les degrés de température. Une observation sera une liste de 3
valeurs [jour,mois,degré].
Par exemple une température de 20° C enregistrée le 13 février correspond à la liste [13, 2, 20].
Pour simplifier on supposera que toutes les observations sont enregistrées pendant des années non
bissextiles (le nombre de jours du mois de février d’une année non bissextile est égal à 28).
On suppose que les listes Nb_jours et Mois suivantes sont préalablement définies :
Nb_jours = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
Mois=['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre',
'Novembre','Décembre']
1. Ecrire une fonction Dict_MJ() qui, à partir des deux listes Nb_jour et Mois, retourne un dictionnaire
qui associe à chaque mois de la liste Mois le nombre de jours correspondant.
Valeur retournée de la fonction Dict_MJ():{"Janvier" :31,"Fevrier" :28, …,"Décembre":31}
2. Ecrire une fonction Dict_ordM() retournant un dictionnaire qui associe à chaque mois de la liste
Mois, son numéro dans l’année.
Valeur retournée de la fonction Dict_ordM(): {"Janvier" :1,"Fevrier" :2, …,"Décembre":12}
3. Ecrire une fonction valide(obs) qui retourne True si l’observation obs correspond à un jour et un
mois valide et False sinon. (Mois valide : compris entre 1 et 12. Jours valide : compris entre 1 et le
nombre de jours max du mois)
4. Ecrire la fonction Num_jour(obs) qui permet de retourner le numéro du jour dans l’année d’une
observation obs donnée et supposée valide.
Exemple : l’observation [12, 2, 10] enregistrée le 12 février correspond au 43ième
Jour de l'année
5. Ecrire la fonction Avant(obs1,obs2) qui, à partir de deux observations obs1 et obs2 supposées
valides, retourne True si l’observation obs1 a eu lieu avant l’observation obs2 et retourne False sinon.
(Utiliser impérativement la fonction Num_jour).
Exercice 4

Dans cet exercice, on désire faire la somme et le produit de deux polynômes P et Q.


Pour cela, on va représenter les polynômes par des listes python.
 On code un polynôme a0 + a1X+··· + anX n sous la forme d’une liste [a0,a1,...,an]. Par exemple,
2
le polynôme 3X3 + 5X2 + 4 est représenté par la liste [4, 0, 5, 3].
 La somme consiste à additionner les termes de même degré de deux polynômes selon la
formule

Avec :
 d_max désigne le maximum entre dp et dq qui sont respectivement les degrés de P et Q,
 ai et bi sont respectivement les coefficients de P et Q
Remarque:
Si P et Q sont de degrés différents, il faut additionner les termes de même degré puis:
 Si dp>dq, alors ajouter au polynôme somme, les termes restants de P
 Sinon, ajouter au polynôme somme, les termes restants de Q

 Pour le calcul du produit de deux polynômes P et Q, il faut se rappeler que si P(X)=


et si
Q(X)= , C=P×Q= alors le k-ème coefficient de C est =
Dans la pratique on fait attention de ne pas accéder à des coefficients qui n’ont pas été définis.
Exemple:

Soit les deux polynômes P et Q.


P=-3+2X2, P est de degré 2. Son écriture sous forme de liste donne L1 de taille 3 =[-3,0,2]
Q=9X+5X3, Q est de degré 3. Son écriture sous forme de liste donne L2 de taille 4=[0,9,0,5]
La somme de S=P+Q donne la liste LS de taille 4 telle que LS=[-3,9,2,5]
Le produit PQ= P*Q donne la liste PQ de taille 6 telle que PQ=[0,-27,0,3,0,10]

Ecrire en python:
1. Une fonction saisie_degre() qui permet de saisir un entier strictement positif qui représente le
degré d'un polynôme .
2. Une fonction saisie_liste() qui permet de saisir la liste L1 de taille N qui représente les
coefficients du polynôme P.
3. Une fonction somme(L1,L2) qui permet de créer puis afficher la liste LS qui représente la
somme des deux polynômes P et Q représentés respectivement par L1 et L2 .
4. Une fonction produit(L1,L2) qui permet de créer puis afficher la liste PQ qui représente le
polynôme produit de P et Q représentés respectivement par L1 et L2.
5. Un programme de test qui fait appel aux fonctions définies précédemment.

Vous aimerez peut-être aussi