Dans cette feuille d’exercice, on utilise indifféremment le mot « tableau » ou le mot « liste » car, en python, les tableaux sont appelés des listes.
Exercice 1 : Nombre d’occurrences d’une valeur dans une liste
Écrire une fonction occurrences(v, li) qui renvoie le nombre d’occurrences de la valeur v dans la liste li, c'est-à-dire le nombre de fois que la valeur v apparait dans la liste. On proposera deux versions, l'une avec un parcours par valeurs, l'autre avec un parcours par indices.
Exercice 2 : Somme des éléments d’une liste
Écrire une fonction sum_liste(...) qui prend une liste de nombres en paramètre et renvoie la somme de ces nombres.
Exercice 3 : Plus grande valeur d’une liste de nombres aléatoires
1) Écrire une fonction liste_nb_aleat() qui construit une liste de 20 entiers entre 0 et 99 et la renvoie.
2) Écrire une fonction max_liste(li) qui renvoie la plus grande valeur de la liste li.
3) Écrire le programme qui permet de tester ces deux fonctions.
Exercice 4 : Dé à six faces
1) Écrire une fonction qui simule un dé à six faces, c’est-à-dire qui renvoie un nombre entier entre 1 et 6.
2) Écrire une fonction qui réalise 600 tirages d’un dé et renvoie dans une liste de longueur 6 le nombre de fois que chaque valeur a été tirée.
3) Écrire le programme principal qui affiche proprement le résultat.
Exercice 5 : Échange de deux éléments d’une liste
Écrire une fonction echange(li, i, j) qui échange dans la liste li les éléments qui sont aux indices i et j. Cette fonction ne renverra rien, mais aura un effet de bord sur le paramètre li.
Exercice 6 (*) : Mélange des éléments d’une liste
Pour mélanger les éléments d’une liste, il existe une méthode très simple : on parcourt la liste et on échange chaque élément d’indice i (en commençant à 1) avec un élément d’indice j compris en 0 et i (inclus) tiré aléatoirement.
Remarque : cet algorithme donne toutes les permutations avec la même probabilité.
Histoire : cet algorithme a été proposé par Fisher et Yates en 1938.
1) Écrire la fonction melange(li).
2) Écrire une fonction liste_entiers(n) qui renvoie la liste des entiers de 0 à n-1.
3) Écrire le programme principal qui permet de « visualiser » le mélange en utilisant la fonction liste_entiers.
Exercice 7 (*) : Suppression des doublons d’une liste
Écrire une fonction sans_doublons(liste:list) qui renvoie une nouvelle liste identique à celle passée en paramètre, mais sans les doublons.
On rappelle l’existence de l’opérateur d’appartenance in qui permet de tester la présence ou non d’un élément dans une liste.
Exemple : sans_doublons([1, 2, 2, 1, 3, 2, 1]) doit renvoyer [1, 2, 3].
Exercice 8 (*) : Créer une liste avec les éléments de l’utilisateur
Écrire une fonction creer_liste() qui demande à l’utilisateur d’entrer des nombres entiers positifs jusqu’à ce que l’utilisateur entre la valeur 0. L’ensemble des nombres entrés par l’utilisateur seront placés dans une liste et la liste sera renvoyée par la fonction.