25 lines
669 B
Plaintext
25 lines
669 B
Plaintext
FUNCTION toRoman(value AS INTEGER) AS STRING
|
|
DIM arabic(0 TO 12) AS INTEGER
|
|
DIM roman(0 TO 12) AS STRING
|
|
ARRAY ASSIGN arabic() = 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1
|
|
ARRAY ASSIGN roman() = "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"
|
|
|
|
DIM i AS INTEGER
|
|
DIM result AS STRING
|
|
|
|
FOR i = 0 TO 12
|
|
DO WHILE value >= arabic(i)
|
|
result = result & roman(i)
|
|
value = value - arabic(i)
|
|
LOOP
|
|
NEXT i
|
|
toRoman = result
|
|
END FUNCTION
|
|
|
|
FUNCTION PBMAIN
|
|
'Testing
|
|
? "2009 = " & toRoman(2009)
|
|
? "1666 = " & toRoman(1666)
|
|
? "3888 = " & toRoman(3888)
|
|
END FUNCTION
|