Adloun

NSI (terminale) · Chapitre 10 · Exercice de TD

Détecter une erreur logique

Modularité, mise au point et tests · niveau 3 (difficile)

Énoncé

Détecter une erreur logique.

Le code suivant est censé compter les nombres pairs d'une liste, mais il contient une erreur logique. La trouver, la corriger et écrire un test qui l'aurait détectée.

Corrigé


# Version erronee :
# def compte_pairs(liste):
#     c = 0
#     for x in liste:
#         if x % 2 == 1:   # ERREUR : teste les impairs
#             c += 1
#     return c

def compte_pairs(liste):
    """Renvoie le nombre d'elements pairs de la liste."""
    c = 0
    for x in liste:
        if x % 2 == 0:     # correction
            c += 1
    return c

# Test qui aurait revele l'erreur
assert compte_pairs([2, 4, 6]) == 3     # echouait avant (donnait 0)
assert compte_pairs([1, 3, 5]) == 0
assert compte_pairs([1, 2, 3, 4]) == 2
assert compte_pairs([]) == 0
print("Exercice 6 : 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 →