29 lines
672 B
Text
29 lines
672 B
Text
PROGRAM ROMAN2ARAB
|
|
|
|
DIM R%[7]
|
|
|
|
PROCEDURE TOARAB(ROMAN$->ANS%)
|
|
LOCAL I%,J%,P%,N%
|
|
FOR I%=LEN(ROMAN$) TO 1 STEP -1 DO
|
|
J%=INSTR("IVXLCDM",MID$(ROMAN$,I%,1))
|
|
IF J%=0 THEN
|
|
ANS%=-9999 ! illegal character
|
|
EXIT PROCEDURE
|
|
END IF
|
|
IF J%>=P% THEN
|
|
N%+=R%[J%]
|
|
ELSE
|
|
N%-=R%[J%]
|
|
END IF
|
|
P%=J%
|
|
END FOR
|
|
ANS%=N%
|
|
END PROCEDURE
|
|
|
|
BEGIN
|
|
R%[]=(0,1,5,10,50,100,500,1000)
|
|
TOARAB("MCMXCIX"->ANS%) PRINT(ANS%)
|
|
TOARAB("MMXII"->ANS%) PRINT(ANS%)
|
|
TOARAB("MDCLXVI"->ANS%) PRINT(ANS%)
|
|
TOARAB("MMMDCCCLXXXVIII"->ANS%) PRINT(ANS%)
|
|
END PROGRAM
|