17 lines
553 B
Plaintext
17 lines
553 B
Plaintext
PRINT "MCMXCIX", FNromandecode("MCMXCIX")
|
|
PRINT "MMXII", FNromandecode("MMXII")
|
|
PRINT "MDCLXVI", FNromandecode("MDCLXVI")
|
|
PRINT "MMMDCCCLXXXVIII", FNromandecode("MMMDCCCLXXXVIII")
|
|
END
|
|
|
|
DEF FNromandecode(roman$)
|
|
LOCAL i%, j%, p%, n%, r%()
|
|
DIM r%(7) : r%() = 0,1,5,10,50,100,500,1000
|
|
FOR i% = LEN(roman$) TO 1 STEP -1
|
|
j% = INSTR("IVXLCDM", MID$(roman$,i%,1))
|
|
IF j%=0 ERROR 100, "Invalid character"
|
|
IF j%>=p% n% += r%(j%) ELSE n% -= r%(j%)
|
|
p% = j%
|
|
NEXT
|
|
= n%
|