Sujet n°13
Sujet original
Pour télécharger l'énoncé original, cliquer ici.
Exercice n°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
(de type list
) et
qui renvoie le nombre d'occurrences de a
dans tab
.
Commentaires
Le nom de cette fonction recherche
n'est pas explicite
puisqu'elle renvoie le nombre d'occurrences d'éléments dans un
tableau (qui n'a pas à se restreindre à des nombres).
Exemples d'utilisations de la fonction recherche
>>> 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
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 |
|
Exercice n°2☘
La fonction rendu_monnaie
prend en paramètres
deux nombres entiers positifs somme_due
et somme_versee
.
Elle procède au rendu de monnaie de la différence
somme_versee – somme_due
pour des achats effectués avec le système
monétaire de la zone Euro. On utilise pour cela un
algorithme glouton qui commence par rendre le maximum de pièces ou billets 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 contenues dans le tableau
pieces = [1, 2, 5, 10, 20, 50, 100, 200]
.
Ainsi, l’instruction rendu_monnaie(452, 500)
renverra 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 :
1 2 3 4 5 6 7 8 9 10 11 |
|
Compléter ce code et le tester.
Exemples
>>> rendu_monnaie(700, 700)
[]
>>> rendu_monnaie(102, 500)
[200, 100, 50, 20, 20, 5, 2, 1]
Commentaires sur le code original
-
Pour télécharger l'original du fichier à compléter, cliquer ici.
-
C'est une application « classique » des algorithmes gloutons.
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 |
|