Les structures Simples

 Mise à jour le : 01/11/2004

Énoncé
Un caissier dispose dans sa caissier des billets de 10 dinars, des billets de 5 dinars et des pièces de 1 dinar.
Écrire un programme Pascal qui échange un montant d'un chèque, exprimé en dinars, par le maximum de billets de 10 dinars et le reste en billets de 5 dinars et des pièces de 1 dinar.

Exemple : Si le montant est égal à 328 dinars, le caissier nous donne : 
32 billets de 10 dinars, 1 billet de 5 dinars et 3 pièces de 1 dinar. 

 

I) La préanalyse :

Exemple :    Montant  Mt =  328    Dinars

Mt Nb5 Nb1

32

  5

3

Entier Entier Entier
 

Nb10 ß   Mt Div 10            Nb5 ß    Mt Mod 10 Div 5               Nb1 ß    Mt Mod 10 Mod 5



II) L'analyse :

Nom = Billets

Séquences Liste des définitions Explicites Objets Utilisés
5 Résultats = Ecrire(Nb10, Nb5, Nb1) Nb10 
2 Nb10 ß   Mt Div 10 Nb5
1 Répéter Nb1
         Mt = Donnée Mt
  Jusqu à  (Mt>0)  
3 Nb5 ß    Mt Mod 10 Div 5  
4 Nb1 ß    Mt Mod 10 Mod 5  
6 Fin Billets  
III) Le tableau de déclaration des objets :
Objets Utilisés Code Nature / Type Rôle
Mt  Mt  variable / Entier

Recevoir un montant d'un chèque

Nb10  Nb10  variable / Entier Recevoir le nombre de billets de 10 dinars
Nb5 Nb5 variable / Entier Recevoir le nombre de billets de 5 dinars
Nb1 Nb1 variable / Entier Recevoir le nombre de billets de 1 dinar
IV) L'algorithme :
0- Début Billets
1- Répéter
        Lire(Mt)
  Jusqu à  (Mt>0)
2- Nb10 ß    Mt Div 10
3- Nb5   ß    Mt Mod 10 Div 5
4- Nb1   ß    Mt Mod 10 Mod 5
5- Ecrire(Nb10, Nb5, Nb1)
6- Fin Billets
V) La traduction en turbo pascal :
Program Billets;
uses Wincrt;
Var N, C, D, U : Integer;
Begin
	Repeat
		Write('Le montant d''un chèque :');
		Readln(Mt);
	Until (Mt>0);
	Nb10 : = Mt Div 10;
	Nb5  : = Mt Mod 10 Div 5;
	Nb1  : = Mt Mod 10 Mod 5;
	Write(Nb10,' billets de 10 dinars');
	Write(Nb5,' billets de 5 dinars');
	Write(Nb1,' billets de 1dinar');
End.
VI) La traduction en langage C++ :
#include <stdio.h>
int main()
{int N, C, D, U ;
     	do
		{printf("Le montant d''un chèque  :");
		scanf("%d",&Mt);}
     	while ((Mt<1);
	Nb10  = Mt / 10;
	Nb5  : = Mt % 10 / 5;
	Nb1  : = Mt % 10 % 5;
	 C= N / 100;
	 D  = N % 100 / 10;
	 U  = N % 10;
	 N  = C * 10000 + D * 100 + U;
	 printf("%d billets de 10 dinars", Nb10);;
	 printf("%d billets de 5 dinars", Nb5);;
	 printf("%d billets de 1 dinar", Nb1);;
                 getchar();getchar();
}

 

 

Page d'index Série structures simples Haut