araroma5
program romani; (* variante di araroma4 *) (* traduce e visualizza simultaneamente serie consecutiva di *) (* numeri forniti automaticamente da primo e ultimo da indicare *) uses crt; var numero,risposta,k,limite,nx:integer; romano,M,CM,D,CD,C,XC,L,XL,X,IX,V,IV,I,sigla:string; procedure scrivinumero; begin numero:=k+nx; 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+nx,'=',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); write('scrivi da quale numero iniziare 0..10..20..');readln(nx); limite:=limite+1; repeat inizio; k:=k+1; until k=limite-nx; readln; clrscr; end.
listato per traduzione da arabico a romano scrivi limite per trasformazione 10..100..400..1000..100 scrivi da quale numero iniziare 0..10..20..50 50=L.. 51=LI.. 52=LII.. 53=LIII.. 54=LIV.. 55=LV.. 56=LVI.. 57=LVII.. 58=LVIII.. 59=LIX.. 60=LX.. 61=LXI.. 62=LXII.. 63=LXIII.. 64=LXIV.. 65=LXV.. 66=LXVI.. 67= LXVII.. 68=LXVIII.. 69=LXIX.. 70=LXX.. 71=LXXI.. 72=LXXII.. 73=LXXIII.. 74=LXXIV .. 75=LXXV.. 76=LXXVI.. 77=LXXVII.. 78=LXXVIII.. 79=LXXIX.. 80=LXXX.. 81=LXXXI.. 82=LXXXII.. 83=LXXXIII.. 84=LXXXIV.. 85=LXXXV.. 86=LXXXVI.. 87=LXXXVII.. 88=LXX XVIII.. 89=LXXXIX.. 90=XC.. 91=XCI.. 92=XCII.. 93=XCIII.. 94=XCIV.. 95=XCV.. 96= XCVI.. 97=XCVII.. 98=XCVIII.. 99=XCIX.. 100=C..