Problème à l'exécution d'un programme ADA
Bonsoir,
Voilà, mon première essai en ADA pose problème: la compilation du programme et son construction ne génère aucun message d'erreur, pourtant le resultat voulu (affichage de la monnaie rendue avec détails des pièces et billets ne s'execute pas:evilred:)
Quelqu'un aurait une idée?? Merci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| with Ada.Text_IO;
USE Ada.Text_IO;
WITH Ada.Integer_Text_IO;
use ada.Integer_Text_IO;
--premier programme de daninou
--achat et rendu de monnaie au supermarché
--début de la procédure--
PROCEDURE Essai IS
Mt_Achat:Integer;
Mt_Versement:Integer;
Mt_Rendu:Integer;
Reste:Integer;
Rendu_20, Rendu_10, Rendu_5, Rendu_2, Rendu_1:Integer;
Nb_20 : CONSTANT Integer:= 5;
Nb_10 : CONSTANT Integer:= 5;
Nb_5 : CONSTANT Integer:= 5;
Nb_2 : CONSTANT Integer:= 10;
Nb_1 : CONSTANT Integer:= 10;
-- début du programme--
BEGIN
Put ("Entrer le montant de l'achat: ");
Get (Mt_Achat);
Skip_Line;
Put ("Entrez le montant du versement: ");
Get (Mt_Versement);
Skip_Line;
Mt_Rendu:=Mt_Versement - Mt_Achat;
Reste:=Mt_Rendu;
Rendu_20:=Reste/20;
IF Rendu_20>Nb_20
THEN Reste:=Nb_20;
ELSE NULL;
END IF;
Reste:= Reste-Rendu_20*20;
Rendu_10:=Reste/10;
IF Rendu_10>Nb_10
THEN Reste:=Nb_10;
ELSE NULL;
END IF;
Reste:= Reste-Rendu_10*10;
Rendu_5:=Reste/5;
IF Rendu_5>Nb_5
THEN Reste:=Nb_5;
ELSE NULL;
END IF;
Reste:= Reste-Rendu_5*5;
Rendu_2:=Reste/2;
IF Rendu_2>Nb_2
THEN Reste:=Nb_2;
ELSE NULL;
END IF;
Reste:= Reste-Rendu_2*2;
Rendu_1:=Reste/1;
IF Reste>Nb_1
THEN
Put ("pas assez de monnaie à rendre");
ELSE Rendu_1:=Reste;
END IF;
Put ("montant a rendre");
Get (Mt_Rendu,3);
Get (Rendu_20, 3);
Get (Rendu_10, 3);
Get (Rendu_5, 3);
Get (Rendu_2, 3);
Get (Rendu_1, 3);
END Essai; |