Guest User

Untitled

a guest
Apr 27th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. def e falta
  2. if falta > 0
  3. num = ' e '
  4. end
  5. end
  6.  
  7. def numeroPortugues numero
  8.  
  9. if numero < 0
  10. return 'Por favor, digite um número positivo.'
  11. end
  12.  
  13. if numero == 0
  14. return 'zero'
  15. end
  16.  
  17. numExtenso = ''
  18.  
  19. unidades = ['um', 'dois', 'tres', 'quatro', 'cinco', 'seis', 'sete', 'oito', 'nove']
  20. dezenas = ['dez', 'vinte', 'trinta', 'quarenta', 'cinqüenta', 'sessenta', 'sessenta', 'oitenta', 'noventa']
  21. especiais = ['onze', 'doze', 'treze', 'catorze', 'quinze', 'dezesseis', 'dezesete', 'dezoito', 'dezenove']
  22. centenas = ['cento', 'duzentos', 'trezentos', 'quatrocentos', 'quinhetos', 'seicentos', 'setecentos', 'oitocentos', 'novecentos']
  23.  
  24. # Mil
  25. falta = numero
  26. escrevendo = falta/1000
  27. falta = falta - escrevendo*1000
  28.  
  29. if (escrevendo >= 1 and escrevendo <= 9)
  30. mils = numeroPortugues escrevendo
  31. numExtenso = numExtenso + unidades[escrevendo-1] + ' mil' + e(falta).to_s
  32.  
  33. elsif (escrevendo == 10)
  34. numExtenso = numExtenso + dezenas[(escrevendo/10)-1] + ' mil' + e(falta).to_s
  35.  
  36. elsif (escrevendo >= 11 and escrevendo <= 19)
  37. numExtenso = numExtenso + especiais[escrevendo-11] + ' mil' + e(falta).to_s
  38.  
  39. elsif (escrevendo >= 20 and escrevendo <= 99)
  40. numExtenso = numExtenso + dezenas[(escrevendo/10)-1] + ' mil' + e(falta).to_s
  41.  
  42. elsif (escrevendo == 100)
  43. numExtenso = numExtenso + 'cem' + ' mil' + e(falta).to_s
  44.  
  45. elsif (escrevendo >= 101 and escrevendo <= 109)
  46. numExtenso = numExtenso + centenas[(escrevendo/100)-1] + e(falta).to_s + unidades[(escrevendo)-101] + ' mil' + e(falta).to_s
  47.  
  48. elsif [110,210].include?(escrevendo)
  49. numExtenso = numExtenso + centenas[(escrevendo/100)-1] + e(falta).to_s + dezenas[(escrevendo/10)-11] + ' mil' + e(falta).to_s
  50.  
  51. end
  52.  
  53. # Centenas
  54. escrevendo = falta/100
  55. falta = falta - escrevendo*100
  56.  
  57. if (escrevendo == 1 and falta == 0)
  58. cents = numeroPortugues escrevendo
  59. numExtenso = numExtenso + 'cem'
  60.  
  61. elsif escrevendo > 0
  62. numExtenso = numExtenso + centenas[escrevendo-1] + e(falta).to_s
  63. end
  64.  
  65. # Dezenas
  66. escrevendo = falta/10
  67. falta = falta - escrevendo*10
  68.  
  69. if escrevendo > 0
  70. if ((escrevendo == 1) and (falta > 0))
  71. numExtenso = numExtenso + especiais[falta-1]
  72. falta = 0
  73.  
  74. else
  75. numExtenso = numExtenso + dezenas[escrevendo-1] + e(falta).to_s
  76. end
  77. end
  78.  
  79. # Unidades
  80. escrevendo = falta
  81. falta = 0
  82.  
  83. if escrevendo > 0
  84. numExtenso = numExtenso + unidades[escrevendo-1]
  85. end
  86.  
  87. numExtenso
  88. end
  89.  
  90. puts numeroPortugues(32)
  91. puts numeroPortugues(100)
  92. puts numeroPortugues(132)
  93. puts numeroPortugues(500)
  94. puts numeroPortugues(532)
  95. puts numeroPortugues(1000)
  96. puts numeroPortugues(1125)
  97. puts numeroPortugues(10000)
  98. puts numeroPortugues(10125)
  99. puts numeroPortugues(11000)
  100. puts numeroPortugues(11125)
  101. puts numeroPortugues(21125)
  102. puts numeroPortugues(99999)
  103. puts numeroPortugues(100000)
  104. puts numeroPortugues(109125)
  105. puts numeroPortugues(120125)
Add Comment
Please, Sign In to add comment