Lyc´ee Benjamin Franklin Groupe A−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 somme.
Correction
1. def somme(u):
2.
3. l=len(u) # l contient la longueur de l’uplet saisi
4. s=0 # initialisation de la variable s (servant au calcul de la somme) `a 0 5. i=0 # initialisation de l’indice de parcours de boucle `a 0
6.
7. while i<l:
8. s=s+u[i] # calcul de la somme de proche en proche
9. i=i+1 # incr´ementation de 1 de l’indice de parcours de boucle 10.
11. return s
Question n˚2 :Ecrire une fonction qui prend en arguments un uplet d’entiers´ u, un entiernet renvoie l’uplet obtenu `a partir deuen supprimant les entiers qui sont sup´erieurs ou ´egaux `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 inf´erieurs `an.
1. def supprime (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