36 lines
740 B
Plaintext
36 lines
740 B
Plaintext
PROGRAM "romandec"
|
|
VERSION "0.0000"
|
|
|
|
DECLARE FUNCTION Entry ()
|
|
DECLARE FUNCTION romToDec (roman$)
|
|
|
|
FUNCTION Entry ()
|
|
PRINT "MCMXCIX = "; romToDec("MCMXCIX")
|
|
PRINT "MDCLXVI = "; romToDec("MDCLXVI")
|
|
PRINT "XXV = "; romToDec("XXV")
|
|
PRINT "CMLIV = "; romToDec("CMLIV")
|
|
PRINT "MMXI = "; romToDec("MMXI")
|
|
END FUNCTION
|
|
|
|
FUNCTION romToDec (roman$)
|
|
num = 0
|
|
prenum = 0
|
|
FOR i = LEN(roman$) TO 1 STEP -1
|
|
x$ = MID$(roman$, i, 1)
|
|
SELECT CASE x$
|
|
CASE "M" : n = 1000
|
|
CASE "D" : n = 500
|
|
CASE "C" : n = 100
|
|
CASE "L" : n = 50
|
|
CASE "X" : n = 10
|
|
CASE "V" : n = 5
|
|
CASE "I" : n = 1
|
|
END SELECT
|
|
IF n < prenum THEN num = num-n ELSE num = num+n
|
|
prenum = n
|
|
NEXT i
|
|
|
|
RETURN num
|
|
END FUNCTION
|
|
END PROGRAM
|