Adloun

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

Faire l'exercice suivant avec le tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →