Aller au contenu

TP - Minimum et maximum

Téléchargez le fichier « à trous » TPB01.31.py (clic droit -> [Enregistrer sous]) et enregistrez-le dans le dossier [B01_Tableaux].

Consignes communes à chaque partie

Le programme principal contient un appel au module doctest :

##----- Programme principal et tests -----##
if __name__ == '__main__':
    import doctest
    doctest.testmod()
Chacune des fonctions devra passer les tests proposés.
Il faudra aussi ajouter vos propres tests dans le programme principal (le main) afin de vous entraîner à en réaliser.

Pour chaque fonction il faudra que votre programme lève l'erreur suivante :

>>> nom_de_la_fonction([])
AssertionError: Le tableau ne doit pas être vide

Partie 1 : Recherche du plus petit élément

Complétez le code de la fonction minimum() qui prend en paramètre un tableau d'entiers tab et qui renvoie le plus petit élément de ce tableau.

1
2
3
4
5
6
7
8
def minimum(tab):
    """
    tab – list, tableau non vide d'entiers
    Sortie: int – valeur du plus petit élément du tableau
    >>> minimum([2, 6, 3, 9, 1, 42])
    1
    """
    pass

Partie 2 : Premier indice du maximum

Complétez le code de la fonction premier_indice_du_maxi() qui prend en paramètre un tableau d'entiers tab et qui renvoie un couple constitué du plus grand élément du tableau tab et du premier indice auquel se trouve ce maximum.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def premier_indice_du_maxi(tab):
    """
    tab – list, tableau non vide d'entiers
    Sortie: (int, int) – le couple (maximum, premier indice de ce maximum)
    >>> premier_indice_du_maxi([3, 6, 7, 3, 9, 3])
    (9, 4)
    >>> premier_indice_du_maxi([3, 9, 7, 3, 9, 3, 2])
    (9, 1)
    """
    pass

Partie 3 : Dernier indice du maximum

Complétez le code de la fonction dernier_indice_du_maxi() qui prend en paramètre un tableau d'entiers tab et qui renvoie un couple constitué du plus grand élément du tableau tab et du dernier indice auquel se trouve ce maximum.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def dernier_indice_du_maxi(tab):
    """
    tab – list, tableau non vide d'entiers
    Sortie: (int, int) – le couple (maximum, dernier indice du maximum)
    >>> dernier_indice_du_maxi([3, 9, 7, 3, 6, 3])
    (9, 1)
    >>> dernier_indice_du_maxi([3, 9, 7, 3, 9, 3, 2])
    (9, 4)
    """
    pass

Partie 4 : Tableau des indices du minimum

Complétez le code de la fonction indices_du_min() qui prend en paramètre un tableau d'entiers tab et qui renvoie un couple constitué du plus petit élément de ce tableau et d'un tableau des indices où se situe ce minimum.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def indices_du_min(tab):
    """
    tab – list, tableau non vide d'entiers
    Sortie: (int, list) – le couple (minimum, tableau des indices du minimum)
    >>> indices_du_min([4, 6, 7, 4, 9, 4])
    (4, [0, 3, 5])
    >>> indices_du_min([4, 6, 7, 4, 9, 4, 2])
    (2, [6])
    """
    pass

Partie 5 : Maximum en enlevant un élément

Complétez le code de la fonction max_avec_absent() qui prend en paramètre un tableau d'entiers tab et un entier i et qui renvoie le plus grand élément du tableau tab privé de l'élément d'indice i.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def max_avec_absent(tab, i):
    """
    tab – list, tableau non vide d'entiers
    Sortie: int – le maximum de tab privé de tab[i]
    >>> max_avec_absent([9, 6, 7, 4, 4, 8], 0)
    8
    >>> max_avec_absent([4, 6, 7, 4, 9, 4], 2)
    9
    >>> max_avec_absent([4, 6, 7, 4, 9, 4], 4)
    7
    """
    pass