Adloun

NSI (terminale) · Chapitre 10 · Exercice de TD

Précondition et postcondition

Modularité, mise au point et tests · niveau 2

É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.")

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →