Aller au contenu

Maximum⚓︎

Écrire une fonction maximum :

  • prenant en paramètre une liste non vide de nombres : nombres
  • renvoyant le plus grand élément de cette liste.

Chacun des nombres utilisés est de type int ou float.

⚠ On interdit ici d'utiliser max, ainsi que sort ou sorted.

Exemples
🐍 Console Python
>>> maximum([98, 12, 104, 23, 131, 9])
131
>>> maximum([-27, 24, -3, 15])
24
###
# Testsbksl-nlassert maximum([98, 12, 104, 23, 131, 9]) == 131bksl-nlassert maximum([-27, 24, -3, 15]) == 24bksl-nlbksl-nl# Tests supplémentairesbksl-nlassert maximum([1, 2, 3, 4, 5]) == 5bksl-nlassert maximum([5, 4, 3, 2, 1]) == 5bksl-nlassert maximum([5, 5, 5]) == 5bksl-nlassert abs(maximum([5.01, 5.02, 5.0]) - 5.02) < 10py-strpy-str-6bksl-nlassert maximum([-5, -4, -3, -8, -6]) == -3bksl-nlassert maximum([1, 2]) == 2bksl-nlbksl-nl 5/5

def maximum(nombres):bksl-nl ...bksl-nlbksl-nlbksl-nl# Testsbksl-nlassert maximum([98, 12, 104, 23, 131, 9]) == 131bksl-nlassert maximum([-27, 24, -3, 15]) == 24bksl-nlbksl-nldef maximum(nombres):bksl-nl maxi = nombres[0]bksl-nl for valeur in nombres:bksl-nl if valeur > maxi:bksl-nl maxi = valeurbksl-nl return maxibksl-nlbksl-nl

A

Il s'agit d'une recherche de maximum classique. La liste étant non-vide, on initialise la variable maxi avec la première valeur.

Variante récursive pour la classe de terminale⚓︎

🐍 Script Python
def maximum(nombres, i=0):
    """renvoie le maximum parmi les nombres d'indices i jusqu'à la fin"""
    if  i == len(nombres) - 1:
        return nombres[i]
    else:
        maxi = maximum(nombres, i + 1)
        if nombres[i] > maxi:
            return nombres[i]
        else:
            return maxi

Z