Adloun

NSI (terminale) · Chapitre 10 · Exercice d'entraînement

Déboguer le deuxième plus grand

Modularité, mise au point et tests · Erreurs, exceptions et débogage · niveau 3 (difficile)

Énoncé

Déboguer le deuxième plus grand. La fonction suivante doit renvoyer la deuxième plus grande valeur distincte d'une liste qui contient au moins deux valeurs distinctes (par exemple pour [3, 9, 7, 9]).


def deuxieme_plus_grand(t):
    premier = t[0]
    second = t[0]
    for i in range(1, len(t) + 1):
        if t[i] > premier:
            second = premier
            premier = t[i]
    return second
  • L'appel deuxieme_plus_grand([3, 9, 7]) s'interrompt avec le message IndexError: list index out of range. Expliquer la cause et la corriger.
  • Une fois ce premier défaut corrigé, la fonction renvoie-t-elle le bon résultat pour [3, 9, 7] ? pour [9, 3, 7] ? Identifier les deux erreurs logiques qui restent.
  • Écrire une version correcte et un jeu de tests qui aurait révélé chacun des défauts.

Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre