Listes Min max Moy Rch
Tris
Ep 13
le document
l'algorithme
Issue de : 23-NSI-14
EXERCICE 1
Ăcrire une fonction recherche
qui prend en paramĂštres elt
nombre entier et tab
un tableau de nombres entiers (type list), et qui renvoie lâindice de la premiĂšre occurrence de elt dans tab
si elt
est dans tab
et None
sinon.
Lâobjectif de cet exercice est de parcourir un tableau, il est interdit dâutiliser la mĂ©thode index des listes Python.
Exemples :
đ Script Python >>> 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
RĂ©ponse
Complétez le code ci-dessous
# Mettre votre code icibksl-nlbksl-nl
Solution
def recherche(elt, tab):bksl-nl '''bksl-nl renvoie lâindice de la premiĂšre occurrence debksl-nl elt dans tab si elt est dans tab et -1 sinon. bksl-nl '''bksl-nl assert tab != [], "le tableau est vide"bksl-nl for i in range(len(tab)):bksl-nl if tab[i] == elt:bksl-nl return i bksl-nl return -1 bksl-nlbksl-nltry:bksl-nl assert recherche(1, [2, 3, 4]) == -1bksl-nl assert recherche(1, [10, 12, 1, 56]) == 2bksl-nl assert recherche(50, [1, 50, 1]) == 1bksl-nl assert recherche(15, [8, 9, 10, 15]) == 3bksl-nl print('Tout semble correct đ')bksl-nlbksl-nlexcept AssertionError as asser:bksl-nl print('Le rĂ©sultat de votre fonction n\'est pas conforme đ€')bksl-nlbksl-nlbksl-nl
EXERCICE 2
On considĂšre la fonction insere
ci-dessous qui prend en argument un tableau tab
dâentiers triĂ©s par ordre croissant et un entier a
.0 Cette fonction crée et renvoie un nouveau 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.
đ Script Python 1
2
3
4
5
6
7
8
9
10
11
12
13
14 def insere ( tab , a ):
"""
InsÚre l'élément a (int) dans le tableau tab (list)
trié par ordre croissant à sa place et renvoie le
nouveau tableau.
"""
tab_a = [ a ] + tab # nouveau tableau contenant a
# suivi des éléments de tab
i = 0
while i < ... and a > ... :
tab_a [ i ] = ...
tab_a [ i + 1 ] = a
i = ...
return tab_a
Exemple :
đ Script Python >>> 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 ]
RĂ©ponse
Complétez le code ci-dessous
def insere(a, tab):bksl-nl """bksl-nl InsĂšre l'Ă©lĂ©ment a (int) dans le tableau tab (list)bksl-nl triĂ© par ordre croissant Ă sa place et renvoie lebksl-nl nouveau tableau.bksl-nl """bksl-nl l = list(tab) #l contient les mĂȘmes Ă©lĂ©ments que tabbksl-nl l.append(a)bksl-nl i = ...bksl-nl while a < ... and i >= 0:bksl-nl l[i+1] = ...bksl-nl l[i] = abksl-nl i = ...bksl-nl return lbksl-nlbksl-nl
Solution
def insere(tab, a):bksl-nl """bksl-nl InsĂšre l'Ă©lĂ©ment a (int) dans le tableau tab (list)bksl-nl triĂ© par ordre croissant Ă sa place et renvoie lebksl-nl nouveau tableau.bksl-nl """bksl-nl l = list(tab) #l contient les mĂȘmes Ă©lĂ©ments que tabbksl-nl l.append(a)bksl-nl i = len(l) - 2bksl-nl while a < l[i] and i >= 0:bksl-nl l[i+1] = l[i]bksl-nl l[i] = abksl-nl i = i - 1bksl-nl return lbksl-nlbksl-nltry:bksl-nl assert insere([1, 2, 4, 5], 3) == [1, 2, 3, 4, 5]bksl-nl assert insere([1, 2, 7, 12, 14, 25], 30) == [1, 2, 7, 12, 14, 25, 30]bksl-nl assert insere([2, 3, 4], 1) == [1, 2, 3, 4]bksl-nl assert insere([], 1) == [1]bksl-nl print('Tout semble correct đ')bksl-nlbksl-nlexcept AssertionError as asser:bksl-nl print('Le rĂ©sultat de votre fonction n\'est pas conforme đ€')bksl-nlbksl-nl