Adloun

Minimum, maximum et étendue

Exercice de TD · niveau 2 · sciences numériques et technologie (seconde), chapitre 6 — Listes et simulations aléatoires · Manipuler une liste

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

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.