Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with Entrees_Sorties; use Entrees_Sorties;
- with Ada.Strings; use Ada.Strings;
- with Ada.Strings.Fixed; use Ada.Strings.Fixed;
- procedure caisse is
- aRendre : Float;
- pieces : array (0..7) of Float := (0.01, 0.02, 0.05, 0.10, 0.20, 0.50, 1.00, 2.00);
- billets : array (0..6) of Float := (5.00, 10.00, 20.00, 50.00, 100.00, 200.00, 500.00);
- nbPieces : array (0..7) of Integer := (40, 40, 40, 60, 30, 40, 20, 15);
- nbBillets : array (0..6) of Integer := (10, 10, 10, 6, 5, 5, 1);
- nbMem : Float;
- begin
- put("Stock de la caisse :");
- new_line;
- for i in 0..6 loop
- if(nbBillets(i)>1) then
- put(Integer'Image(nbBillets(i)) & " billets de " & Trim(Integer'Image(Integer(billets(i))), Left));
- else
- put(Integer'Image(nbBillets(i)) & " billet de " & Trim(Integer'Image(Integer(billets(i))), Left));
- end if;
- new_line;
- end loop;
- for i in 0..7 loop
- if(nbPieces(i)>1) then
- put(Integer'Image(nbPieces(i)) & " piece de ");
- else
- put(Integer'Image(nbPieces(i)) & " piece de ");
- end if;
- if(pieces(i) < 1.0) then
- put("0.");
- if(pieces(i) < 0.10) then
- put("0" & Trim(Integer'Image(Integer(pieces(i)*100.0)), Left));
- else
- put(Trim(Integer'Image(Integer(pieces(i)*100.0)), Left));
- end if;
- else
- put(Trim(Integer'Image(Integer(pieces(i))), Left));
- end if;
- new_line;
- end loop;
- new_line;
- put("Monnaie a rendre ? ");
- get(aRendre);
- --put(aRendre);
- for i in 0..6 loop
- if(aRendre >= billets(6-i)) then
- nbMem := Float((Integer(aRendre*100.0) - (Integer(aRendre*100.0) mod Integer(billets(6-i)*100.0)))/Integer(billets(6-i)*100.0));
- new_line;
- if(Integer(nbMem) > nbBillets(6-i)) then
- nbMem := Float(nbBillets(6-i));
- end if;
- put(Integer'Image(Integer(nbMem)));
- if(Integer(nbMem) > 1) then
- put(" billets de ");
- else
- put(" billet de ");
- end if;
- put(Trim(Integer'Image(Integer(billets(6-i))), Left));
- aRendre := (Float(Integer(aRendre*100.0) - Integer(billets(6-i)*100.0)*Integer(nbMem))/100.0);
- end if;
- end loop;
- for i in 0..7 loop
- if(aRendre >= pieces(7-i)) then
- nbMem := Float((Integer(aRendre*100.0) - (Integer(aRendre*100.0) mod Integer(pieces(7-i)*100.0)))/Integer(pieces(7-i)*100.0));
- new_line;
- if(Integer(nbMem) > nbPieces(7-i)) then
- nbMem := Float(nbPieces(7-i));
- end if;
- put(Integer'Image(Integer(nbMem)));
- if(Integer(nbMem) > 1) then
- put(" pieces de ");
- else
- put(" piece de ");
- end if;
- if(pieces(7-i) < 1.0) then
- put("0.");
- if(pieces(7-i) < 0.10) then
- put("0" & Trim(Integer'Image(Integer(pieces(7-i)*100.0)), Left));
- else
- put(Trim(Integer'Image(Integer(pieces(7-i)*100.0)), Left));
- end if;
- else
- put(Trim(Integer'Image(Integer(pieces(7-i))), Left));
- end if;
- aRendre := (Float(Integer(aRendre*100.0) - Integer(pieces(7-i)*100.0)*Integer(nbMem))/100.0);
- end if;
- end loop;
- end caisse;
Advertisement
Add Comment
Please, Sign In to add comment