Sujet n°14
Sujet original
Pour télécharger l'énoncé original, cliquer ici.
Exercice n°1☘
Écrire une fonction recherche()
qui prend en paramètres un nombre
entier elt
et un tableau tab
de nombres entiers, et qui renvoie l’indice de
la première occurrence de elt
dans tab
si elt
est dans tab
et -1
sinon.
Ne pas oublier d’ajouter au corps de la fonction une documentation et une ou plusieurs assertions pour vérifier les pré-conditions.
Exemples
>>> recherche(1, [2, 3, 4])
-1
>>> recherche(1, [10, 12, 1, 56])
2
>>> recherche(50, [1, 50, 1])
1
>>> recherche(15, [8, 9, 10, 15])
3
>>> recherche(50, [])
-1
>>> recherche(4, [2, 4, 4, 3, 4])
1
Une solution
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 |
|
Exercice n°2☘
On considère la fonction insere()
ci-dessous qui prend en argument un entier
a
et un tableau tab
d'entiers triés par ordre croissant. Cette fonction crée et renvoie un nouveau
tableau à partir de celui fourni en paramètre en y insérant la valeur a
de sorte que le
tableau renvoyé soit encore trié par ordre croissant.
Les tableaux seront représentés sous la forme de listes Python.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Commentaires sur le code original
-
Pour télécharger l'original du fichier à compléter, cliquer ici, mais vous aurez des surprises.
-
Une variable qui n'est désigné que par une lettre
l
(il faudrait la renommer enlst
). - En ligne 8, une boucle
while
qui teste la validité de l'indice après avoir fait appel à cet indice n'est clairement pas correct d'un point de vue algorithmique...
Compléter la fonction insere()
ci-dessus.
Exemples
>>> insere(3, [1, 2, 4, 5])
[1, 2, 3, 4, 5]
>>> insere(30, [1, 2, 7, 12, 14, 25])
[1, 2, 7, 12, 14, 25, 30]
>>> insere(1, [2, 3, 4])
[1, 2, 3, 4]
>>> insere(1, [])
[1]
Une solution
Dans cette solution, l
est renommée en lst
et les conditions
de la boucle while
ont été échangées.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|