28 lines
801 B
Plaintext
28 lines
801 B
Plaintext
FUNCTION romtodec(roman$)
|
|
LET num = 0
|
|
LET prenum = 0
|
|
FOR i = len(roman$) to 1 step -1
|
|
LET x$ = (roman$)[i:i+1-1]
|
|
LET n = 0
|
|
IF x$ = "M" then LET n = 1000
|
|
IF x$ = "D" then LET n = 500
|
|
IF x$ = "C" then LET n = 100
|
|
IF x$ = "L" then LET n = 50
|
|
IF x$ = "X" then LET n = 10
|
|
IF x$ = "V" then LET n = 5
|
|
IF x$ = "I" then LET n = 1
|
|
IF n < prenum then LET num = num-n else LET num = num+n
|
|
LET prenum = n
|
|
NEXT i
|
|
|
|
LET 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
|
|
END
|