'*** Roman Numerals Decoder
'***
'*** By George McGinn (03/30/2018)
'*** Modified on 04/16/2021 From TechBASIC to QB64
'*** NOTE: This program was originally submitted to the Rosetta Code
'*** website as part of a solution to one of their challenges
'*** (http://www.rosettacode.org/wiki/Roman_numerals/Decode#TechBASIC)
Main:
'------------------------------------------------
' CALLS THE romToDec FUNCTION WITH THE ROMAN
' NUMERALS AND RETURNS ITS DECIMAL EQUIVELENT.
'
PRINT "ROMAN NUMERAL TO DECIMAL CONVERSION"
PRINT "MDCCIV = "; romToDec
("MDCCIV") '1704 PRINT "MCMXC = "; romToDec
("MCMXC") '1990 PRINT "MMVIII = "; romToDec
("MMVIII") '2008 PRINT "MDCLXVI = "; romToDec
("MDCLXVI") '1666 PRINT "Here are other solutions not from the TASK:" PRINT "MCMXCIX = "; romToDec
("MCMXCIX") '1999 PRINT "XXV = "; romToDec
("XXV") '25 PRINT "CMLIV = "; romToDec
("CMLIV") '954 PRINT "MMXI = "; romToDec
("MMXI") '2011 PRINT "MMIIIX = "; romToDec
("MMIIIX") '2011 PRINT "2011 can be written either as MMXI or MMIIIX" PRINT "With the IX = 9, MMIIIX is also 2011." PRINT "2011 IS CORRECT (MM=2000 + II = 2 + IX = 9)"
'------------------------------------------------------
' FUNCTION THAT CONVERTS ANY ROMAN NUMERAL TO A DECIMAL
'
prenum = 0: num = 0
n = 1000
IF n
< prenum
THEN num
= num
- n
ELSE num
= num
+ n
prenum = n
romToDec = num