mathématiques approfondies (ECG 1re année) · Chapitre 11 · Application directe du cours
Lire trois boucles
Informatique et algorithmique · Premiers pas en Python · niveau 1 (application)
Énoncé
Donner, en justifiant, la valeur affichée par chacun des trois programmes suivants.
s = 0
for k in range(1, 5):
s = s + k
print(s)
n = 1
while n < 20:
n = 2 * n
print(n)
T = [3, 8, 1, 9]
m = T[0]
for x in T:
if x > m:
m = x
print(m)Corrigé
Ce qu'on montre. Qu'on lit un programme en suivant les variables tour par tour, et non en devinant son intention.
Premier programme. range(1, 5) parcourt — la borne haute est exclue. Les valeurs successives de s sont L'affichage est , c'est-à-dire .
Deuxième programme. n part de et double à chaque tour tant qu'il est strictement inférieur à : Après le passage à , la condition est encore vraie, donc un tour de plus donne ; la condition est alors fausse et la boucle s'arrête. L'affichage est , et non .
Troisième programme. m est initialisée à T[0] = 3, puis remplacée chaque fois qu'un élément plus grand apparaît : L'affichage est : le programme calcule le maximum de la liste.
Point délicat. Le deuxième est celui où l'on se trompe : la condition d'une boucle while est testée avant le tour, jamais après. La valeur finale de n est donc la première puissance de qui atteint ou dépasse — la sortie de boucle se fait toujours avec la condition fausse.
Exercices semblables
- Une fonction qui compte corrigé
- Somme et produit d'une liste, à la main corrigé
- Créer et lire un tableau corrigé
- Transposer, et extraire une ligne ou une colonne corrigé
- Le rang de trois matrices corrigé