Adloun

sciences numériques et technologie (seconde) · Chapitre 6 · Exercice de TD

Minimum, maximum et étendue

Listes et simulations aléatoires · Manipuler une liste · niveau 2

Énoncé

Sans utiliser min ni max :

  1. Écrire minimum(L) et maximum(L).
  2. En déduire etendue(L).
  3. Tester sur [12, 8, 15, 10, 17] puis sur [-3, -9, -1].
  4. Pourquoi ne faut-il pas initialiser le minimum à ?

Corrigé

1. et 2.

def minimum(L):
    m = L[0]
    for x in L:
        if x < m:
            m = x
    return m

def maximum(L):
    m = L[0]
    for x in L:
        if x > m:
            m = x
    return m

def etendue(L):
    return maximum(L) - minimum(L)

3.

print(minimum([12, 8, 15, 10, 17]), maximum([12, 8, 15, 10, 17]))   # 8 17
print(etendue([12, 8, 15, 10, 17]))                                  # 9
print(minimum([-3, -9, -1]), etendue([-3, -9, -1]))                  # -9 8

4. Avec m = 0, la fonction renverrait pour la liste [-3, -9, -1] — une valeur qui n'est même pas dans la liste. Le défaut ne se voit pas sur des notes, toutes positives : il n'apparaît qu'avec des températures, des altitudes ou des soldes.

Initialiser avec L[0] est le seul choix sûr, parce que la valeur de départ appartient alors aux données. En contrepartie, la fonction échoue sur une liste vide — ce qui est préférable à un résultat faux, mais mérite d'être traité explicitement.

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 →