araromax
program romani; (* trasforma formato numerico da arabico a romano *) (* struttura analitica..cfr.varianti fornite *) uses crt; var numero,risposta:integer; romano,M,CM,D,CD,C,XC,L,XL,X,IX,V,IV,I,scegli:string; procedure calcroman; begin repeat write('scrivi numero intero <3999 ');readln(numero); until numero<3999; romano:=''; if numero>=1000 then repeat begin romano:=romano+M; numero:=numero-1000; end; until numero<1000; if numero>=1000 then repeat begin romano:=romano+M; numero:=numero-1000; end; until numero<1000; if numero>=900 then repeat begin romano:=romano+CM; numero:=numero-900; end; until numero<900; if numero>=500 then repeat begin romano:=romano+D; numero:=numero-500; end; until numero<500; if numero>=400 then repeat begin romano:=romano+CD; numero:=numero-400; end; until numero<400; if numero>=100 then repeat begin romano:=romano+C; numero:=numero-100; end; until numero<100; if numero>=90 then repeat begin romano:=romano+XC; numero:=numero-90; end; until numero<90; if numero>=50 then repeat begin romano:=romano+L; numero:=numero-50; end; until numero<50; if numero>=40 then repeat begin romano:=romano+XL; numero:=numero-40; end; until numero<40; if numero>=10 then repeat begin romano:=romano+X; numero:=numero-10; end; until numero<10; if numero=9 then repeat begin romano:=romano+IX; numero:=numero-9; end; until numero<9; if numero>=5 then repeat begin romano:=romano+V; numero:=numero-5; end; until numero<5; if numero=4 then repeat begin romano:=romano+IV; numero:=numero-4; end; until numero<4; if numero>=1 then repeat begin romano:=romano+I; numero:=numero-1; end; until numero<1; writeln('il numero romano=',romano); write('premi invio'); readln;end; procedure fine; begin write('premi Invio');readln;clrscr; end; procedure scelta; begin clrscr; write('per continuare scrivi 1 o 0 per finire ');readln(risposta); end; begin M:='M'; CM:='CM'; D:='D'; CD:='CD'; C:='C'; XC:='XC'; L:='L'; XL:='XL'; X:='X'; IX:='IX'; V:='V'; IV:='IV'; I:='I'; clrscr; repeat calcroman; scelta; until risposta=0; end.
listato risultato traduzione per continuare scrivi 1 o 0 per finire 1 scrivi numero intero <3999 1555 il numero romano=MDLV premi invio per continuare scrivi 1 o 0 per finire 1 scrivi numero intero <3999 555 il numero romano=DLV premi invio