TP : retour sur l’exercice 4 du TD (rendu de monnaie)

TP : retour sur l’exercice 4 du TD (rendu de monnaie)#

Consultez l’énoncé de TD et et implantez en C++ le calcul de rendu de monnaie, autant que possible sans consulter vos notes de TD.

Indication

  1. Le calcul souhaité produit plusieurs valeurs, alors qu’une fonction n’en renvoie qu’une seule. Aussi, on se contentera d’effectuer le calcul directement sur des variables, sans chercher à écrire le code sous forme d’une fonction réutilisable. Nous verrons en Semaine 5 comment résoudre cela en construisant un tableau, c’est-à-dire une valeur composite contenant plusieurs valeurs.

  2. Pensez à la division entière!

Entrées : la somme due (prix) et la somme donnée (somme) en centimes, des entiers divisibles par 5

int prix = 5;    // 5 centimes
int somme = 200; // 2 euros

Sorties : le nombre de pièces de 50, 20, 10 et 5 centimes à rendre (npieces50, npieces20, npieces10, npieces5).

int npieces5, npieces10, npieces20, npieces50;

Calculez ci-dessous les valeurs de nbpieces5, …, nbpieces50, puis vérifiez les valeurs obtenues.

/// BEGIN SOLUTION
int a_rendre;
a_rendre = somme - prix;
npieces50 = a_rendre / 50;
a_rendre   = a_rendre % 50;
npieces20 = a_rendre / 20;
a_rendre = a_rendre % 20;
npieces10 = a_rendre / 10;
a_rendre = a_rendre % 10;
npieces5 = a_rendre / 5;
/// END SOLUTION
npieces50
npieces20
npieces10
npieces5

Avant de lancer le test automatique ci-dessous, assurez-vous que le prix et la somme donnés en entrée ci-dessus sont bien respectivement de 5 et 200 centimes.

CHECK( npieces50 == 3 );
CHECK( npieces20 == 2 );
CHECK( npieces10 == 0 );
CHECK( npieces5 == 1 );