26 lines
827 B
Plaintext
26 lines
827 B
Plaintext
100 cls
|
|
110 roman$ = "MCMXCIX" : print roman$,"=> "; : gosub 170 : print decimal '1999
|
|
120 roman$ = "XXV" : print roman$,"=> "; : gosub 170 : print decimal '25
|
|
130 roman$ = "CMLIV" : print roman$,"=> "; : gosub 170 : print decimal '954
|
|
140 roman$ = "MMXI" : print roman$,"=> "; : gosub 170 : print decimal '2011
|
|
150 end
|
|
160 rem Decode from roman
|
|
170 decimal = 0
|
|
180 predecimal = 0
|
|
190 for i = len(roman$) to 1 step -1
|
|
200 x$ = mid$(roman$,i,1)
|
|
210 select case x$
|
|
220 case "M" : n = 1000
|
|
230 case "D" : n = 500
|
|
240 case "C" : n = 100
|
|
250 case "L" : n = 50
|
|
260 case "X" : n = 10
|
|
270 case "V" : n = 5
|
|
280 case "I" : n = 1
|
|
290 case else : print "not a roman numeral" : end
|
|
300 end select
|
|
310 if n < predecimal then decimal = decimal-n else decimal = decimal+n
|
|
320 predecimal = n
|
|
330 next i
|
|
340 return
|