From postapase, 1 Week ago, written in GAMBAS.
Embed
  1. ' gambas module file
  2.  
  3. 'by postapase
  4.  
  5. Public Sub Main()
  6.  
  7.  
  8. For a = 1 To 4000
  9. Print a & "=" & gb.Tab & EnteroToRomano(a)
  10.  
  11.  
  12. Public Sub EnteroToRomano(entero As Integer) As String
  13.  
  14. Select Case entero
  15. Return "I"
  16. Return "II"
  17. Return "III"
  18. Return "IV"
  19. Return "V"
  20. Return "VI"
  21. Return "VII"
  22. Return "VIII"
  23. Return "IX"
  24. Case 10
  25. Return "X"
  26. Case 11 To 19
  27. Return "X" & EnteroToRomano(entero - 10)
  28. Case 20
  29. Return "XX"
  30. Case 21 To 29
  31. Return "XX" & EnteroToRomano(entero - 20)
  32. Case 30
  33. Return "XXX"
  34. Case 31 To 39
  35. Return "XXX" & EnteroToRomano(entero - 30)
  36. Case 40
  37. Return "XL"
  38. Case 41 To 49
  39. Return "XL" & EnteroToRomano(entero - 40)
  40. Case 50
  41. Return "L"
  42. Case 51 To 59
  43. Return "L" & EnteroToRomano(entero - 50)
  44. Case 60
  45. Return "LX"
  46. Case 61 To 69
  47. Return "LX" & EnteroToRomano(entero - 60)
  48. Case 70
  49. Return "LXX"
  50. Case 71 To 79
  51. Return "LXX" & EnteroToRomano(entero - 70)
  52. Case 80
  53. Return "LXXX"
  54. Case 81 To 89
  55. Return "LXXX" & EnteroToRomano(entero - 80)
  56. Case 90
  57. Return "XC"
  58. Case 91 To 99
  59. Return "XC" & EnteroToRomano(entero - 90)
  60. Case 100
  61. Return "C"
  62. Case 101 To 199
  63. Return "C" & EnteroToRomano(entero - 100)
  64. Case 200
  65. Return "CC"
  66. Case 201 To 299
  67. Return "CC" & EnteroToRomano(entero - 200)
  68. Case 300
  69. Return "CCC"
  70. Case 301 To 399
  71. Return "CCC" & EnteroToRomano(entero - 300)
  72. Case 400
  73. Return "CD"
  74. Case 401 To 499
  75. Return "CD" & EnteroToRomano(entero - 400)
  76. Case 500
  77. Return "D"
  78. Case 501 To 599
  79. Return "D" & EnteroToRomano(entero - 500)
  80. Case 600
  81. Return "DC"
  82. Case 601 To 699
  83. Return "DC" & EnteroToRomano(entero - 600)
  84. Case 700
  85. Return "DCC"
  86. Case 701 To 799
  87. Return "DCC" & EnteroToRomano(entero - 700)
  88. Case 800
  89. Return "DCCC"
  90. Case 801 To 899
  91. Return "DCCC" & EnteroToRomano(entero - 800)
  92. Case 900
  93. Return "CM"
  94. Case 901 To 999
  95. Return "CM" & EnteroToRomano(entero - 900)
  96. Case 1000
  97. Return "M"
  98. Case 1001 To 1999
  99. Return "M" & EnteroToRomano(entero - 1000)
  100. Case 2000
  101. Return "MM"
  102. Case 2001 To 2999
  103. Return "MM" & EnteroToRomano(entero - 2000)
  104. Case 3000
  105. Return "MMM"
  106. Case 3001 To 3999
  107. Return "MMM" & EnteroToRomano(entero - 3000)
  108. Return entero & " no supe convertirlo"
  109.