NSI (première) · Chapitre 8 · Application directe du cours
Vérifier à la main que le rendu glouton de 67 centimes donne quatre…
Dichotomie, voisins et gloutons · Voisins et gloutons · niveau 1 (application)
Énoncé
Vérifier à la main que le rendu glouton de centimes donne quatre pièces. Que se passe-t-il si l'on passe les pièces en ordre croissant ? sans pièce de ?
Corrigé
EURO = [200, 100, 50, 20, 10, 5, 2, 1]
assert rendu_monnaie(67, EURO) == [50, 10, 5, 2]
assert rendu_monnaie(0, EURO) == []
try:
rendu_monnaie(10, [1, 2, 5]) # croissant
assert False
except AssertionError as e:
assert "decroissant" in str(e)
try:
rendu_monnaie(10, [5, 2]) # sans piece de 1
assert False
except AssertionError as e:
assert "piece de 1" in str(e)
Les deux préconditions protègent de deux échecs très différents. En ordre croissant, l'algorithme rendrait dix pièces de : correct mais absurde. Sans pièce de , il resterait un reste non nul et la postcondition sum(rendu) == somme serait violée — sur avec [5, 2], il n'existe d'ailleurs aucune décomposition.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 16 autres exercices corrigés dans ce chapitre, et 20 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.