program NumeriRomani;
var
corr,
succ : char;
val_corr,
val_succ,
somma : integer;
function Romano2Intero (ch : char) : integer;
begin
case ch of
'I' : Romano2Intero := 1;
'V' : Romano2Intero := 5;
'X' : Romano2Intero := 10;
'L' : Romano2Intero := 50;
'C' : Romano2Intero := 100;
'D' : Romano2Intero := 500;
'M' : Romano2Intero := 1000;
end
end;
begin
somma := 0;
writeln('Inserisci un numero romano (senza spazi) terminato da un punto !');
writeln('Il numero romano deve essere corretto');
writeln('(cioe` una sequenza di cifre M,D,C,L,X,V,I in ordine corretto) ! ');
read(corr);
if corr <> '.' then
begin
val_corr := Romano2Intero(corr);
read(succ);
while succ <> '.' do
begin
val_succ := Romano2Intero(succ);
if val_corr >= val_succ then
somma := somma + val_corr
else
somma := somma - val_corr;
corr := succ;
val_corr := val_succ;
read(succ)
end;
somma := somma + val_corr
end;
writeln('Numero corrispondente : ', somma)
end.