Aller au contenu

Ep 14

▶ TĂ©lĂ©charger le sujet en pdf.

EXERCICE 1⚓

Écrire une fonction recherche qui prend en paramùtres elt un nombre entier et tab un tableau 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 :

🐍 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-nl



EXERCICE 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.

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(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 = 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-nl