Adloun

Donner un exemple de boucle while qui ne se termine jamais, et un…

Application directe du cours · niveau 1 (application) · NSI (première), chapitre 3 — Langages et programmation · Reconnaître les constructions et les langages

Énoncé

Donner un exemple de boucle while qui ne se termine jamais, et un exemple de boucle while dont on ne peut pas dire à l'avance combien de tours elle fera, mais dont on est certain qu'elle se termine.

Corrigé


def somme_bornee(n):
    """Somme des entiers de 1 a n, par boucle bornee."""
    total = 0
    for i in range(1, n + 1):
        total = total + i
    return total

def somme_non_bornee(n):
    """Somme des entiers de 1 a n, par boucle non bornee."""
    total = 0
    i = 1
    while i <= n:
        total = total + i
        i = i + 1
    return total

Vérification.


for n in range(0, 300):
    assert somme_bornee(n) == somme_non_bornee(n) == n * (n + 1) // 2

Les cas passent, et coïncident avec la formule .

Laquelle préférer ? La bornée, sans hésiter. Trois raisons, dans l'ordre d'importance :

La règle générale : quand le nombre de tours est connu avant d'entrer dans la boucle, on emploie une boucle bornée. La boucle non bornée est réservée aux cas où ce nombre dépend de ce qui se passe pendant l'exécution.

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.