28 lines
744 B
Plaintext
28 lines
744 B
Plaintext
FUNCTION romToDec (roman$)
|
|
num = 0
|
|
prenum = 0
|
|
FOR i = LEN(roman$) TO 1 STEP -1
|
|
x$ = MID$(roman$, i, 1)
|
|
n = 0
|
|
IF x$ = "M" THEN n = 1000
|
|
IF x$ = "D" THEN n = 500
|
|
IF x$ = "C" THEN n = 100
|
|
IF x$ = "L" THEN n = 50
|
|
IF x$ = "X" THEN n = 10
|
|
IF x$ = "V" THEN n = 5
|
|
IF x$ = "I" THEN n = 1
|
|
|
|
IF n < preNum THEN num = num - n ELSE num = num + n
|
|
preNum = n
|
|
NEXT i
|
|
|
|
romToDec = num
|
|
END FUNCTION
|
|
|
|
!Testing
|
|
PRINT "MCMXCIX = "; romToDec("MCMXCIX") '1999
|
|
PRINT "MDCLXVI = "; romToDec("MDCLXVI") '1666
|
|
PRINT "XXV = "; romToDec("XXV") '25
|
|
PRINT "CMLIV = "; romToDec("CMLIV") '954
|
|
PRINT "MMXI = "; romToDec("MMXI") '2011
|