DIM SHARED arabic(0 TO 12) AS Integer => {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 } DIM SHARED roman(0 TO 12) AS String*2 => {"M", "CM", "D","CD", "C","XC","L","XL","X","IX","V","IV","I"} FUNCTION toRoman(value AS Integer) AS String 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 'Testing PRINT "2009 = "; toRoman(2009) PRINT "1666 = "; toRoman(1666) PRINT "3888 = "; toRoman(3888)