Adloun

Précondition et postcondition

Exercice de TD · niveau 2 · NSI (terminale), chapitre 10 — Modularité, mise au point et tests

Énoncé

Précondition et postcondition.

Écrire factorielle(n) avec vérification de la précondition par assertion, et un test vérifiant la postcondition factorielle(n) == n * factorielle(n-1).

Corrigé


def factorielle(n):
    """Renvoie n! (factorielle de n).

    Precondition : n est un entier >= 0.
    """
    assert n >= 0, "n doit etre positif ou nul"
    resultat = 1
    for k in range(2, n + 1):
        resultat *= k
    return resultat

# Jeu de tests
assert factorielle(0) == 1     # cas limite
assert factorielle(1) == 1
assert factorielle(5) == 120
# Verification de la relation de recurrence
for n in range(1, 8):
    assert factorielle(n) == n * factorielle(n - 1)
print("Exercice 5 : tous les tests passent.")

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.