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