Aller au contenu

Ep 13

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

EXERCICE 1⚓

Écrire en langage Python une fonction recherche prenant comme paramĂštres une variable a de type numĂ©rique (float ou int) et un tableau tab (type list) et qui renvoie le nombre d'occurrences de a dans tab.

Exemples :

🐍 Script Python
    >>> recherche(5, [])
    0
    >>> recherche(5, [-2, 3, 4, 8])
    0
    >>> recherche(5, [-2, 3, 1, 5, 3, 7, 4])
    1
    >>> recherche(5, [-2, 5, 3, 5, 4, 5])
    3

RĂ©ponse

Complétez le code ci-dessous

###
# Mettre votre code icibksl-nlbksl-nl



Solution

###
def recherche(a, tab):bksl-nl nb = 0bksl-nl for element in tab:bksl-nl if element == a:bksl-nl nb += 1bksl-nl return nbbksl-nlbksl-nl



EXERCICE 2⚓

La fonction rendu_monnaie prend en paramĂštres deux nombres entiers positifs somme_due et somme_versee et elle permet de procĂ©der au rendu de monnaie de la diffĂ©rence somme_versee – somme_due pour des achats effectuĂ©s avec le systĂšme de piĂšces de la zone Euro. On utilise pour cela un algorithme glouton qui commence par rendre le maximum de piĂšces de plus grandes valeurs et ainsi de suite. Par la suite, on assimilera les billets Ă  des piĂšces.

La fonction rendu_monnaie renvoie un tableau de type list contenant les piĂšces qui composent le rendu.

Toutes les sommes sont exprimées en euros. Les valeurs possibles pour les piÚces sont donc [1, 2, 5, 10, 20, 50, 100, 200].

Ainsi, l’instruction rendu_monnaie(452, 500) renvoie le tableau [20, 20, 5, 2, 1].

En effet, la somme Ă  rendre est de 48 euros soit 20 + 20 + 5 + 2 + 1.

Le code de la fonction rendu_monnaie est donné ci-dessous :

Compléter ce code et le tester :

🐍 Script Python
    >>> rendu_monnaie(700,700)
    []
    >>> rendu_monnaie(102,500)
    [200, 100, 50, 20, 20, 5, 2, 1]
RĂ©ponse

Complétez le code ci-dessous

###
def rendupy-undmonnaie(sommepy-unddue, sommepy-undversee):bksl-nl pieces = [1, 2, 5, 10, 20, 50, 100, 200]bksl-nl rendu = ...bksl-nl apy-undrendre = ...bksl-nl i = len(pieces) - 1bksl-nl while apy-undrendre > ... :bksl-nl if pieces[i] <= apy-undrendre :bksl-nl rendu.append(...)bksl-nl apy-undrendre = ...bksl-nl else :bksl-nl i = ...bksl-nl return rendubksl-nlbksl-nl



Solution

###
def rendupy-undmonnaie(sommepy-unddue, sommepy-undversee):bksl-nl pieces = [1, 2, 5, 10, 20, 50, 100, 200]bksl-nl rendu = []bksl-nl apy-undrendre = sommepy-undversee - sommepy-undduebksl-nl i = len(pieces) - 1bksl-nl while apy-undrendre > 0 :bksl-nl if pieces[i] <= apy-undrendre :bksl-nl rendu.append(pieces[i])bksl-nl apy-undrendre = apy-undrendre - pieces[i]bksl-nl else :bksl-nl i = i - 1bksl-nl return rendubksl-nlbksl-nl