Vous êtes sur la page 1sur 2

Spécialité NSI Première

Algorithmique – TP4

Dans ce TP nous utiliserons :


- la fonction randint du module random : from random import randint
- la fonction alea(n,a,b) du TP3 d’algorithmique qui renvoie un tableau (de type list) de n
nombres entiers aléatoires compris entre a et b.

Exercice 1 : Tri par sélection et tri par insertion


1) Ouvrir le fichier TP4_algo.py .
2) a. Modifier la fonction tri_selection afin d’afficher le tableau après chaque sélection.
b. Tester cette fonction avec un tableau d’entiers aléatoires entre 1 et 20 de taille n = 10.
3) a. Modifier la fonction tri_insertion afin d’afficher le tableau après chaque insertion.
b. Tester cette fonction avec un tableau d’entiers aléatoires entre 1 et 20 de taille n = 10.

Exercice 2 : Rappels sur les dictionnaires


1) Afin de rappeler la syntaxe d’un dictionnaire Python, tester dans la partie console les instructions
ci-dessous :
>>> taille = {'Alice':170,'Bob':184,'Clement':179,'Denise':167}
>>> taille['Alice']
>>> taille['Eric'] = 173
>>> taille

Le premier élément est la clés et la deuxième la valeur associée. Ainsi, la valeur 170 est associée à
la clés 'Alice'.

2) Ajouter Fiona qui mesure 177 cm, et George qui mesure 180 cm.

3) Tester dans la partie console les instructions ci-dessous :


>>> taille.keys()
>>> taille.values()
>>> cles = list(taille.keys())
>>> cles
>>> valeurs = list(taille.values())
>>> valeurs

4) Quel est le type des variables cles et valeurs ?

Exercice 3 : Trier un dictionnaire !


Écrire une fonction pour trier du plus petit au plus grand les personnes d’un dictionnaire comme
celui de l’exercice précédent !

Exercice 4 : Jeu de 52 cartes


Un jeu de 52 cartes est composé de quatre familles : Pic, Cœur, Carreau et Trèfle. Chaque famille
possède 13 hauteurs de cartes : 1 (As), 2, 3, 4, 5, 6, 7, 8, 9, 10, Valet, Dame, Roi.
On veut numéroter (indicer) ces cartes de 0 jusqu’à 51.
Plutôt que de taper au clavier le dictionnaire avec ses 52 entrées dans la partie script, on désire le
créer à l’aide d’une fonction et de deux listes F et H :
F = ['PIC','COE','CAR','TRE']
H = ['Val','Dam','Roi']
Écrire une fonction jeu52() qui renvoie un dictionnaire dont les clés sont des tuples, par exemple
('COE','4') pour un 4 de Cœur ou ('TRE,'Val') pour un Valet de Trèfle.

Exercice 5 : Shuffle
Écrire une fonction shuffle(L) qui prend une liste L en argument et renvoie une autre liste
contenant les éléments de L mais mélangés aléatoirement.
Par exemple, si L = ['A','B','C','D'] alors shuffle(L) va mélanger L et l’on pourra
avoir L = ['B','D','C','A'].

Indications : - afin de mélanger aléatoirement la liste, on utilisera la fonction randint et on


travaillera sur les indices de cette liste.

Exercice 6 : Trier un jeu de 52 cartes !


1) Créer une variable dico_jeu à l’aide de la fonction jeu52()de l’exercice 4.
2) Créer une liste jeu des clés de dico_jeu. Cette liste représente notre jeu de cartes. Pour
l’instant elle est triée.
3) Mélanger le jeu de cartes (la variable jeu) à l’aide de la fonction shuffle de l’exercice 5.
4) Écrire une fonction trier_jeu(jeu,dico) qui va trier une liste de cartes (une liste de
tuples du type ('COE','4')) selon un dictionnaire dico qui ordonne et numérote les cartes.
Cette fonction renvoie une liste.

Exercice 7 : Pour aller plus loin !


Écrire une fonction inplace_shuffle(L) qui mélange une liste L sur place (sans utiliser de
liste intermédiaire, comme pour les tris par insertion ou sélection).

Vous aimerez peut-être aussi