romara1

 

program romani;
(* genera tabella da formato arabico a romano *)
(* visualizza tabella da formato romano ad arabico *)
uses crt;
var numero,k,limite,arabico,a:integer;
    M,CM,D,CD,C,XC,L,XL,X,IX,V,IV,I,sigla:string;
    romano1:array[1..3999] of string[10];

procedure scrivinumero;
begin
numero:=k;romano1[k]:='';end;

procedure calcola(nume:integer;sigla:string);
var numex:integer;
begin numex:=nume;
if numero>=numex then
repeat
begin
romano1[k]:=romano1[k]+sigla;
numero:=numero-nume;
end;
until numero<nume;
end;

(* procedure stampa;
begin
write(k,'=',romano1[k],'.. ');
end; *)   (* possibile visualizzare tabella generata *)

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;*)(* possibile visualizzare tabella generata *)
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
writeln('scrivi limite per trasformazione 10..100..400 <3999:');readln(limite);
until limite<3999;
limite:=limite+1;
(* generazione tabella da arabico a romano *)
repeat
inizio;
k:=k+1;
until k=limite;
writeln;
(* visualizzazione tabella da romano ad arabico *)
for a:=1 to limite do
begin
write(romano1[a],'=',a,'...');
end;
readln;
clrscr;
end.

listato per traduzione da arabico a romano


scrivi limite per trasformazione 10..100..400 <3999:
100

I=1...II=2...III=3...IV=4...V=5...VI=6...VII=7...VIII=8...IX=9...X=10...XI=11...
XII=12...XIII=13...XIV=14...XV=15...XVI=16...XVII=17...XVIII=18...XIX=19...XX=20
...XXI=21...XXII=22...XXIII=23...XXIV=24...XXV=25...XXVI=26...XXVII=27...XXVIII=
28...XXIX=29...XXX=30...XXXI=31...XXXII=32...XXXIII=33...XXXIV=34...XXXV=35...XX
XVI=36...XXXVII=37...XXXVIII=38...XXXIX=39...XL=40...XLI=41...XLII=42...XLIII=43
...XLIV=44...XLV=45...XLVI=46...XLVII=47...XLVIII=48...XLIX=49...L=50...LI=51...
LII=52...LIII=53...LIV=54...LV=55...LVI=56...LVII=57...LVIII=58...LIX=59...LX=60
...LXI=61...LXII=62...LXIII=63...LXIV=64...LXV=65...LXVI=66...LXVII=67...LXVIII=
68...LXIX=69...LXX=70...LXXI=71...LXXII=72...LXXIII=73...LXXIV=74...LXXV=75...LX
XVI=76...LXXVII=77...LXXVIII=78...LXXIX=79...LXXX=80...LXXXI=81...LXXXII=82...LX
XXIII=83...LXXXIV=84...LXXXV=85...LXXXVI=86...LXXXVII=87...LXXXVIII=88...LXXXIX=
89...XC=90...XCI=91...XCII=92...XCIII=93...XCIV=94...XCV=95...XCVI=96...XCVII=97
...XCVIII=98...XCIX=99...C=100...=101...