Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with entrees_sorties;
- use entrees_sorties;
- procedure nbrfr is
- nbGet : Integer;
- listeVals : array(1..27) of Integer := (1000000000, 1000000, 1000, 100, 80, 80, 60, 50, 40, 30, 20, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1);
- listeStrings : array(1..27) of String(1..13) := ("milliard ", "million ", "mille ", "cent ", "quatre-vingts", "quatre-vingt ", "soixante ", "cinquante ", "quarante ", "trente ", "vingt ", "seize ", "quinze ", "quatorze ", "treize ", "douze ", "onze ", "dix ", "neuf ", "huit ", "sept ", "six ", "cinq ", "quatre ", "trois ", "deux ", "un ");
- listeStringSizes : array(1..27) of Integer := (8, 7, 5, 4, 13, 12, 8, 9, 8, 6, 5, 5, 6, 8, 6, 5, 4, 3, 4, 4, 4, 3, 4, 6, 5, 4, 2);
- compteQte : array(1..27) of Integer := (1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- plurAndUnit : array(1..27) of Integer := (1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- exactRequis : array(1..27) of Integer := (0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- requiertTiretEt : array(1..27) of Integer := (0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- offreTiretEt : array(1..27) of Integer := (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
- mettreTiret : Boolean := FALSE;
- precRequiertTiretEt : Boolean := FALSE;
- precRequiertTiret : Boolean := FALSE;
- procedure afficherNombre(nbInit : Integer) is
- i : Integer := 0;
- j : Integer := 1;
- nb : Integer;
- val : Integer;
- begin
- nb := nbInit;
- for i in 1..27 loop
- --i := i + 1;
- val := listeVals(i);
- if((exactRequis(i)=1 AND nb=val) OR (nb >= val AND exactRequis(i)=0)) then
- if(mettreTiret) then put('-'); end if;
- if(nb/val > 1) then
- afficherNombre(nb/val);
- elsif(nb/val=1 AND plurAndUnit(i)=1) then
- afficherNombre(1);
- mettreTiret := FALSE;
- end if;
- if(precRequiertTiretEt AND offreTiretEt(i)=1) then
- put("-et-");
- elsif(precRequiertTiret AND plurAndUnit(i)/=1) then
- put('-');
- else
- put(' ');
- end if;
- j := 1;
- while(j <= listeStringSizes(i)) loop
- put(listeStrings(i)(j));
- j := j+1;
- end loop;
- precRequiertTiretEt := requiertTiretEt(i)=1;
- precRequiertTiret := plurAndUnit(i)/=1;
- nb := nb mod val;
- end if;
- end loop;
- end afficherNombre;
- begin
- put("Entrez un nombre : ");
- get(nbGet);
- new_line;
- afficherNombre(nbGet);
- new_line;
- end nbrfr;
Advertisement
Add Comment
Please, Sign In to add comment