Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
60
Task/Roman-numerals-Decode/QB64/roman-numerals-decode.qb64
Normal file
60
Task/Roman-numerals-Decode/QB64/roman-numerals-decode.qb64
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
SCREEN _NEWIMAGE(400, 600, 32)
|
||||
|
||||
|
||||
CLS
|
||||
|
||||
|
||||
Main:
|
||||
'------------------------------------------------
|
||||
' CALLS THE romToDec FUNCTION WITH THE ROMAN
|
||||
' NUMERALS AND RETURNS ITS DECIMAL EQUIVELENT.
|
||||
'
|
||||
PRINT "ROMAN NUMERAL TO DECIMAL CONVERSION"
|
||||
PRINT: PRINT
|
||||
|
||||
PRINT "MDCCIV = "; romToDec("MDCCIV") '1704
|
||||
PRINT "MCMXC = "; romToDec("MCMXC") '1990
|
||||
PRINT "MMVIII = "; romToDec("MMVIII") '2008
|
||||
PRINT "MDCLXVI = "; romToDec("MDCLXVI") '1666
|
||||
PRINT: PRINT
|
||||
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: PRINT
|
||||
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)"
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
FUNCTION romToDec (roman AS STRING)
|
||||
'------------------------------------------------------
|
||||
' FUNCTION THAT CONVERTS ANY ROMAN NUMERAL TO A DECIMAL
|
||||
'
|
||||
prenum = 0: num = 0
|
||||
LN = LEN(roman)
|
||||
FOR i = LN TO 1 STEP -1
|
||||
x$ = MID$(roman, i, 1)
|
||||
n = 1000
|
||||
SELECT CASE x$
|
||||
CASE "M": n = n / 1
|
||||
CASE "D": n = n / 2
|
||||
CASE "C": n = n / 10
|
||||
CASE "L": n = n / 20
|
||||
CASE "X": n = n / 100
|
||||
CASE "V": n = n / 200
|
||||
CASE "I": n = n / n
|
||||
CASE ELSE: n = 0
|
||||
END SELECT
|
||||
IF n < prenum THEN num = num - n ELSE num = num + n
|
||||
prenum = n
|
||||
NEXT i
|
||||
|
||||
romToDec = num
|
||||
|
||||
END FUNCTION
|
||||
Loading…
Add table
Add a link
Reference in a new issue