araroma4
program romani; (* variante di araroma3 *) (* traduce e visualizza simultaneamente serie consecutiva di *) (* numeri forniti automaticamente da 1 a limite da indicare *) uses crt; var numero,risposta,k,limite:integer; romano,M,CM,D,CD,C,XC,L,XL,X,IX,V,IV,I,sigla:string; procedure scrivinumero; begin numero:=k; romano:=''; end; procedure calcola(nume:integer;sigla:string); var numex:integer; begin numex:=nume; if numero>=numex then repeat begin romano:=romano+sigla; numero:=numero-nume; end; until numero<nume; end; procedure stampa; begin write(k,'=',romano,'.. '); end; procedure inizio; begin scrivinumero; calcola(1000,M); calcola(900,CM); calcola(500,D); calcola(400,CD); calcola(100,C); calcola(90,XC); calcola(50,L); calcola(40,XL); calcola(10,X); calcola(9,IX); calcola(5,V); calcola(4,IV); calcola(1,I); stampa; 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; write('scrivi limite per trasformazione 10..100..400..1000..');readln(limite); limite:=limite+1; repeat inizio; k:=k+1; until k=limite; readln; clrscr; end.
listato per traduzione da arabico a romano scrivi limite per trasformazione 10..100..400..1000.. scrivi limite per trasformazione 10..100..400..1000..10 scrivi da quale numero iniziare 0..10..20..1 1=I.. 2=II.. 3=III.. 4=IV.. 5=V.. 6=VI.. 7=VII.. 8=VIII.. 9=IX.. 10=X.. scrivi limite per trasformazione 10..100..400..1000..100 scrivi da quale numero iniziare 0..10..20..70 70=LXX.. 71=LXXI.. 72=LXXII.. 73=LXXIII.. 74=LXXIV.. 75=LXXV.. 76=LXXVI.. 77=LXX VII.. 78=LXXVIII.. 79=LXXIX.. 80=LXXX.. 81=LXXXI.. 82=LXXXII.. 83=LXXXIII.. 84=L XXXIV.. 85=LXXXV.. 86=LXXXVI.. 87=LXXXVII.. 88=LXXXVIII.. 89=LXXXIX.. 90=XC.. 91 =XCI.. 92=XCII.. 93=XCIII.. 94=XCIV.. 95=XCV.. 96=XCVI.. 97=XCVII.. 98=XCVIII.. 99=XCIX.. 100=C..