Aller au contenu

Ep 02

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

EXERCICE 1⚓

Écrire une fonction indices_maxi qui prend en paramĂštre une liste tab, non vide, de nombres entiers et renvoie un couple donnant d’une part le plus grand Ă©lĂ©ment de cette liste et d’autre part la liste des indices de la liste tab oĂč apparaĂźt ce plus grand Ă©lĂ©ment.

Exemple :

🐍 Script Python
    >>> indices_maxi([1, 5, 6, 9, 1, 2, 3, 7, 9, 8])
    (9, [3, 8])
    >>> indices_maxi([7])
    (7, [0])

RĂ©ponse

Complétez le code ci-dessous

###
# Mettez votre code icibksl-nlbksl-nl



Solution

###
def indicespy-undmaxi(tab):bksl-nl valpy-undmax = tab[0]bksl-nl indpy-undmax = []bksl-nl for i in range(len(tab)):bksl-nl if tab[i] > valpy-undmax:bksl-nl valpy-undmax = tab[i]bksl-nl for i in range(len(tab)):bksl-nl if tab[i] == valpy-undmax:bksl-nl indpy-undmax.append(i)bksl-nl return (valpy-undmax, indpy-undmax)bksl-nlbksl-nl



```

EXERCICE 2⚓

Cet exercice utilise des piles qui seront représentées en Python par des listes (type list).

On rappelle que l’expression liste_1 = list(liste) fait une copie de listeindĂ©pendante de liste, que l’expression x = liste.pop() enlĂšve le sommet de la pile liste et le lace dans la variable x et, enfin, que l’expression liste.append(v) place la valeur v au sommet de la pile liste.

ComplĂ©ter le code Python de la fonction positif ci-dessous qui prend une pile liste de nombres entiers en paramĂštre et qui renvoie la pile des entiers positifs dans le mĂȘme ordre, sans modifier la variable liste.

Exemple :

🐍 Script Python
    >>> positif([-1, 0, 5, -3, 4, -6, 10, 9, -8])
    [0, 5, 4, 10, 9]
    >>> positif([-2])
    []

RĂ©ponse

Complétez le code ci-dessous

###
def positif(pile):bksl-nl pilepy-und1 = ...(pile)bksl-nl pilepy-und2 = ...bksl-nl while pilepy-und1 != []:bksl-nl x = ...bksl-nl if ... >= 0:bksl-nl pilepy-und2.append(...)bksl-nl while pilepy-und2 != ...:bksl-nl x = pilepy-und2.pop()bksl-nl ...bksl-nl return pilepy-und1bksl-nlbksl-nl



Solution

###
def positif(pile):bksl-nl pilepy-und1 = list(pile)bksl-nl pilepy-und2 = []bksl-nl while pilepy-und1 != []:bksl-nl x = pilepy-und1.pop()bksl-nl if x >= 0:bksl-nl pilepy-und2.append(x)bksl-nl while pilepy-und2 != []:bksl-nl x = pilepy-und2.pop()bksl-nl pilepy-und1.append(x)bksl-nl return pilepy-und1bksl-nlbksl-nl