Main: !------------------------------------------------ ! CALLS THE romToDec FUNCTION WITH THE ROMAN ! NUMERALS AND RETURNS ITS DECIMAL EQUIVELENT. ! 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:PRINT PRINT "Without error checking, this also is 2011, but is wrong" PRINT "MMIIIX = "; romToDec("MMIIIX") !INVAID, 2011 STOP FUNCTION romToDec(roman AS STRING) AS INTEGER !------------------------------------------------------ ! 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