Claude Bernard 2013-2014 Informatique - T.P. n◦5
Listes et boucles (II)
Le but de ce T.P. est de mettre en œuvre les algorithmes classiques sur les listes : recherche
du maximum, position d’un maximum, recherche d’un ´el´ement etc.
Cr´eer un dossier TP5. Pour chaque exercice, cr´eer un nouveau fichier.
1 Maximum d’une liste non vide
´
Ecrire une fonction maxi d´eterminant le maximum d’une liste non vide. La fonction maxi
prend un unique argument, une liste Lnon vide d’entiers, et renvoie un entier, le maximum de
la liste L. Il est naturellement exclu d’utiliser une fonction int´egr´ee de python.
Exemple
>>> maxi([3, 4, 12, -66, 122, 33, 44])
122
Trouver la fonction int´egr´ee de python r´ealisant l’op´eration pr´ec´edente.
Variante : minimum d’une liste non vide
En s’inspirant de la fonction maxi, ´ecrire une fonction mini qui d´etermine le minimum d’une
liste non vide d’entiers.
Variante : plus grande valeur absolue d’une liste non vide
En s’inspirant de la fonction maxi, ´ecrire une fonction max_abs qui d´etermine la plus grande
valeur absolue des ´el´ements d’une liste non vide d’entiers.
Exemple
>>> max_abs([-10,20,-30])
30
2 Position du maximum d’une liste non vide
´
Ecrire une fonction pos_max d´eterminant la position du maximum d’une liste non vide. La
fonction pos_max prend un unique param`etre (une liste non vide d’entiers) et renvoie un entier,
l’indice du maximum. Si le maximum est atteint plusieurs fois, la fonction doit renvoyer le plus
petit indice correspondant au maximum. Attention, en python, les indices des listes commencent
`a z´ero. Il est naturellement exclu d’utiliser une fonction int´egr´ee de python.
Exemple
>>> pos_max([3, 4, 122, -66, 122, 33, 44])
2
1/4
Claude Bernard 2013-2014 Informatique - T.P. n◦5
Variante
En s’inspirant de la fonction pos_max, ´ecrire une fonction pos_max_2 qui d´etermine l’indice
du maximum en renvoyant le plus grand indice si plusieurs ´el´ements correspondent au maximum.
(Il suffit probablement de changer un unique caract`ere.)
Exemple
>>> pos_max_2([3, 4, 122, -66, 122, 33, 44])
4
3 Nombre d’apparitions
´
Ecrire une fonction compter prenant deux param`etres (une liste Let une valeur v) et
renvoyant le nombre d’occurrences (c’est-`a-dire d’apparitions) de vdans la liste L.
Exemples
>>> print compter([3,1,4,1,5,9,2],3)
1
>>> print compter([3,1,4,1,5,9,2],1)
2
Quelle fonction int´egr´ee r´ealise la mˆeme op´eration ? Si vous ne trouvez pas, n’h´esitez pas `a
taper la commande suivante.
>>> dir(list)
4 Plus ou moins
Le but de cet exercice est d’illustrer le principe et la force de la m´ethode de recherche par
dichotomie. ´
Ecrire une fonction pour jouer `a ”c’est plus ! c’est moins !”. L’ordinateur choisit
secr`etement un entier au hasard entre 1 et 1000 (inclus) et l’utilisateur doit le trouver en un
minimum de coups. A chaque r´eponse propos´ee, un message s’affiche, qui indique si le nombre `a
trouver est plus grand, plus petit ou encore si c’est le bon. `
A la fin, le nombre d’essais est affich´e.
>>> from random import randint
>>> help(randint)
Exemple
>>> jouer()
500
Trop grand !
100
Trop petit !
...
499
Bravo ! Avec 12 essais
2/4