esercizi von turbo pascal v.5-7
su trasformazione di numeri da formato arabico a romano e viceversa
program romani;
(* trasforma formato arabico in formato romano *)
(* trasforma un singolo numero arabico inserito *)
(* variante di originale araromax pi analitico *)
program romani; (* trasforma formato arabico in formato romano *) (* trasforma un singolo numero arabico inserito *) (* variante di originale araromax pi analitico *) uses crt; var numero,risposta:integer; romano,M,CM,D,CD,C,XC,L,XL,X,IX,V,IV,I,sigla:string; procedure scrivinumero; (* inserimento numero da tradurre *) begin clrscr; write('scrivi numero intero <3999 ');readln(numero); romano:=''; end; procedure calcola(nume:integer;sigla:string); (* traduzione *) 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; (* visualizza traduzione operata *) begin writeln('il numero romano=',romano); writeln('premi invio per proseguire'); end; procedure inizio; (* programma chiamata procedure *) 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; readln; end; procedure scelta; (* opzione per continuare o finire *) begin clrscr; write('per altra prova 1..per fine..0 =');readln(risposta); end; begin (* programma principale *) 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 inizio; scelta; until risposta=0; end.