Le minimum☘
Exercice 1☘
Modifier le code de la fonction prenant en paramètre une liste d'éléments comparables
et renvoyant l'élément maximal de cette liste pour obtenir une fonction
prenant en paramètre une liste d'éléments comparables et renvoyant l'élément minimal de cette liste.
Rappel du code pour le max
Le code que l'on a défini est le suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def max_binaire(a,b): """ a et b sont deux variables de valeurs comparables. La fonction renvoie la plus grande des deux. """ if a > b: return a else: return b def max_tableau(tab): """ tab est une liste d'éléments comparables. La fonction renvoie l'élément le plus grand. """ m = tab[0] for x in tab: m = max_binaire(m,x) return m |
Une solution
Un code possible:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | def min_binaire(a,b): """ a et b sont deux variables de valeurs comparables. La fonction renvoie la plus petite des deux. """ if a < b: return a else: return b def min_tableau(tab): """ tab est une liste d'éléments comparables. La fonction renvoie l'élément le plus petit. """ m = tab[0] for x in tab: m = min_binaire(m,x) return m # exemple d'utilisation if __name__ == '__main__': from random import randint L = [ randint(1,100) for _ in range(randint(11,21))] print(L) print( min_tableau(L) ) # utilisation d'une fonction prédéfinie pour vérif: print( min_tableau(L) == min(L) ) |
Exercice 2☘
On modifie le code de la fonction max_tableau
de la façon suivante:
1 2 3 4 5 6 7 8 9 | def extreme_tableau(tab, extreme_binaire): """ tab est une liste de nombres. La fonction renvoie l'élément le plus "extreme". """ m = tab[0] for x in tab: m = extreme_binaire(m,x) return m |
Le second paramètre extreme_binaire
est une fonction.
Question 1☘
Qu'affiche le script suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | def max_binaire(a,b): """ a et b sont deux variables de valeurs comparables. La fonction renvoie la plus grande des deux. """ if a > b: return a else: return b def extreme_tableau(tab, extreme_binaire): """ tab est une liste de nombres. La fonction renvoie l'élément le plus "extreme". """ m = tab[0] for x in tab: m = extreme_binaire(m,x) return m if __name__ == '__main__': from random import randint L = [ randint(1,20) for _ in range(10)] print( extreme_tableau(L, max_binaire) ) |
Réponse
Le script affichera la valeur maximale contenue dans la liste L.
Question 2☘
En déduire une utilisation de la fonction extreme_tableau
pour définir une fonction
qui prend en paramètre un tableau d'éléments comparables et
renvoie la plus petite valeur du tableau.
Une solution
Un code possible:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | def min_binaire(a,b): """ a et b sont deux variables de valeurs comparables. La fonction renvoie la plus petite des deux. """ if a < b: return a else: return b def extreme_tableau(tab, extreme_binaire): """ tab est une liste de nombres. La fonction renvoie l'élément le plus "extreme". """ m = tab[0] for x in tab: m = extreme_binaire(m,x) return m def minimum_tableau(tab): return extreme_tableau(tab, min_binaire) if __name__ == '__main__': from random import randint L = [ randint(1,20) for _ in range(10)] print( minimum_tableau(L) ) # pour vérif, utilisation d'une fonction builtin: print( min(L) == minimum_tableau(L) ) |