Lyc´ee Benjamin Franklin Groupe B−PTSI−2013-2014
L. Grillet, D. Blotti`ere Informatique
Correction du devoir 2
Question n˚1 :Ecrire une fonction qui prend en argument un uplet d’entiers´ uet renvoie leur produit.
Correction
1. def produit(u):
2.
3. l=len(u) # l contient la longueur de l’uplet saisi
4. p=1 # initialisation de la variable p (servant au calcul du produit) `a 1 5. i=0 # initialisation de l’indice de parcours de boucle `a 0
6.
7. while i<l:
8. p=p*u[i] # calcul du produit de proche en proche
9. i=i+1 # incr´ementation de 1 de l’indice de parcours de boucle 10.
11. return p
Question n˚2 :Ecrire une fonction qui prend en arguments un uplet d’entiers´ u, un entiernet renvoie l’uplet obtenu `a partir deuen conservant uniquement les entiers qui sont strictement sup´erieurs `an.
Correction : On rappelle qu’on ne peut pas modifier un uplet. En particulier, on ne peut pas supprimer des
´
el´ements de l’upletuargument. Pour contourner cet obstacle, on va construire l’uplet demand´e, disonsv, en lui
≪ajoutant≫ de proche en proche uniquement les ´el´ements deuqui sont strictement sup´erieurs `a n.
1. def conserve(u,n):
2.
3. l=len(u) # l contient la longueur de l’uplet saisi
4. v=() # initialisation de la variable v (uplet demand´e) `a l’uplet vide 5. i=0 # initialisation de l’indice de parcours de boucle `a 0
6.
7. while i<l:
8.
9. if u[i]>n: # dans ce cas on "ajoute" u[i] `a l’uplet v 10. v=v+(u[i],) # concat´enation
11.
12. i=i+1 # incr´ementation de 1 de l’indice de parcours de boucle 13.
14. return v