Kod: Zaznacz cały
program arabskie_rzymskie;
uses crt;
const
gap =' ';
type
digit = 0..9;
var
count, numbers, arabic : 1..2000;
tysieczne, setne, dziesietne, jednosci : digit;
roman, wybor1 : string;
plus, minus, wybor, i : integer;
a : boolean;
(********************************)
procedure narzymskie;
begin
writeln('Podaj liczb© w zapisie arabskim');
begin
read(arabic);
write(gap);
tysieczne:= arabic div 1000;
setne:= arabic div 100;
dziesietne:= arabic div 10;
jednosci:= arabic mod 10;
case tysieczne of
0: ;
1: write('M');
2: write('MM');
end;
case setne of
0: ;
1: write('C');
2: write('CC');
3: write('CCC');
4: write('CD');
5: write('D');
6: write('DC');
7: write('DCC');
8: write('DCCC');
9: write('CM');
end;
case dziesietne of
0: ;
1: write('X');
2: write('XX');
3: write('XXX');
4: write('XL');
5: write('L');
6: write('LX');
7: write('LXX');
8: write('LXXX');
9: write('XC');
end;
case jednosci of
0: ;
1: write('I');
2: write('II');
3: write('III');
4: write('IV');
5: write('V');
6: write('VI');
7: write('VII');
8: write('VIII');
9: write('IX');
end;
end;
writeln('Jest to');
readkey;
end;
(*****************************)
procedure naarabskie;
begin
writeln('Podaj liczby w zapisie rzymskim');
readln(roman);
write(gap);
a := false;
for i:= 1 to Length(roman) do
begin
if a = false then
begin
plus:= 0;
case roman[i] of
'M' : plus := 1000;
'D' : plus := 500;
'C' : plus := 100;
'L' : plus := 50;
'X' : plus := 10;
'V' : plus := 5;
'I' : plus := 1;
end;
case roman[i + 1] of
'D' : minus := 500;
'C' : minus := 100;
'L' : minus := 50;
'X' : minus := 10;
'V' : minus := 5;
'I' : minus := 1;
end; {jeľeli liczba poprzedzajĄca jest mniejsza to odejmujemy}
end;
if plus < minus then
begin
plus := minus - plus;
a := true;
end;
end;
writeln('W zapisie arabskim jest to: ',plus);
end;
(********************************)
BEGIN
Repeat
Clrscr;
Writeln;
Writeln('PROGRAM DO ZAMIANY LICZB ARABSKICH NA RZYMSKIE i odwrotnie');
Writeln('1. arabskie na rzymskie; ');
Writeln('2. rzymskie na arabskie; ');
readln(wybor);
if wybor=1 then
begin
narzymskie;
end;
if wybor=2 then
begin
naarabskie;
end;
Writeln('Jeszcze raz? (T) ');
Readln(wybor1);
wybor1:=Upcase(wybor1);
Until wybor1<>'T';
END.