Skip to content

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) )