Adloun

for ou while : lequel convient ?

Exercice de TD · niveau 3 (difficile) · sciences numériques et technologie (seconde), chapitre 4 — Les boucles · La boucle bornée : for

Énoncé

Pour chacune des tâches suivantes, dire quelle boucle convient le mieux et pourquoi, puis écrire le programme.

  1. Afficher les premiers termes de la suite avec .
  2. Trouver le premier terme de cette même suite qui dépasse .

Corrigé

1. Une boucle for convient : le nombre de tours, , est connu d'avance.

u = 1
for n in range(10):
    print(n, u)
    u = 2 * u + 1

Elle affiche .

2. Une boucle while s'impose : on ignore combien de termes il faudra calculer, c'est justement ce que l'on cherche.

u = 1
n = 0
while u <= 1000:
    u = 2 * u + 1
    n = n + 1
print("u_" + str(n), "=", u)   # u_10 = 1023

Le critère de choix est simple et se retient : le nombre de répétitions est-il connu avant d'entrer dans la boucle ? Si oui, for ; sinon, while.

On remarquera que la première question donne déjà la réponse à la seconde — mais uniquement parce qu'on avait deviné juste en demandant termes. C'est précisément ce que le while évite de deviner.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.