araroma6
program romani; (* trasforma formato arabico in romano per serie consecutiva automatica*) (* visualizza tabella tradotta *) (* permette traduzione singolo valore da inserire *) uses crt; var numero,k,limite,arabico: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; procedure inizio; (* genera tabella valori tradotti *) 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; repeat writeln('scrivi limite per trasformazione 10..100..400..<3999:');readln(limite); until limite<3999; limite:=limite+1; repeat inizio; k:=k+1; until k=limite; writeln; (* confronta numero inserito con tabella tradotta *) write(' scrivi numero arabico<=limite:');readln(arabico); for k:=1 to limite do begin if arabico=k then writeln(romano1[k]); end; readln; clrscr; end.
listato per traduzione da arabico a romano scrivi limite per trasformazione 10..100..400..<3999: 4000 scrivi limite per trasformazione 10..100..400..<3999: 100 0=.. 1=I.. 2=II.. 3=III.. 4=IV.. 5=V.. 6=VI.. 7=VII.. 8=VIII.. 9=IX.. 10=X.. 11= XI.. 12=XII.. 13=XIII.. 14=XIV.. 15=XV.. 16=XVI.. 17=XVII.. 18=XVIII.. 19=XIX.. 20=XX.. 21=XXI.. 22=XXII.. 23=XXIII.. 24=XXIV.. 25=XXV.. 26=XXVI.. 27=XXVII.. 28 =XXVIII.. 29=XXIX.. 30=XXX.. 31=XXXI.. 32=XXXII.. 33=XXXIII.. 34=XXXIV.. 35=XXXV .. 36=XXXVI.. 37=XXXVII.. 38=XXXVIII.. 39=XXXIX.. 40=XL.. 41=XLI.. 42=XLII.. 43= XLIII.. 44=XLIV.. 45=XLV.. 46=XLVI.. 47=XLVII.. 48=XLVIII.. 49=XLIX.. 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=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.. scrivi numero arabico<=limite:5 V