Sagot :
Réponse :
Explications :
Bonjour,
il suffit de faire tourner le programme à la main :
for k in range(2): cela signifie que k va prendre la valeur 0 puis la valeur 1
si K = 0 : on a :
a = a*b+k = 1 *0 + 0 = 0
b= b-a = 0 - 0 = 0
c= c*(b-1) = 2 * ( 0 - 1) = -2
d= d+c = -1 -2 = -3
si K = 1 : on a :
a = a*b*k = 1 *0 + 1 = 1
b= b-a = 0 - 1 = -1
c= c*(b-1) = -2 * ( -1 - 1) = 4
d= d+c = -3 +4 = 1
while d <3: la vérification de la condition se fait après l'instruction donc cela signifie que la boucle se fait jusqu'à ce que d >= 3 après l'instruction
au départ k=0
1ere boucle :
a = a*b+k = 1 *0 + 0 = 0
b= b-a = 0 - 0 = 0
c= c*(b-1) = 2 * ( 0 - 1) = -2
d= d+c = -1 -2 = -3
k=k+1 = 0+1 =1
2ieme boucle :
a = a*b+k = 1 *0 + 1 = 1
b= b-a = 0 - 1 = -1
c= c*(b-1) = -2 * ( -1 - 1) = 4
d= d+c = -3 + 4 = 1
k=k+1 = 1 + 1 = 2
3ieme boucle :
a = a*b+k = 1 *- 1 + 2 = 1
b= b-a = -1 - 1 = -2
c= c*(b-1) = 4 * ( -2 - 1) = -12
d= d+c = 1 -12 = -11
k=k+1 = 2 + 1 = 3
4ieme boucle :
normalement c'est la dernière et je vous laisse faire les calculs !!?
Remarque :
les 2 boucles sont identiques puisque le compteur k de "for" se retrouve dans le "while"
donc si vous faites "for k in range(5): c'est dire pour k=0 a k = 4 inclus" vous retrouvez les mêmes résultats.