Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def e falta
- if falta > 0
- num = ' e '
- end
- end
- def numeroPortugues numero
- if numero < 0
- return 'Por favor, digite um número positivo.'
- end
- if numero == 0
- return 'zero'
- end
- numExtenso = ''
- unidades = ['um', 'dois', 'tres', 'quatro', 'cinco', 'seis', 'sete', 'oito', 'nove']
- dezenas = ['dez', 'vinte', 'trinta', 'quarenta', 'cinqüenta', 'sessenta', 'sessenta', 'oitenta', 'noventa']
- especiais = ['onze', 'doze', 'treze', 'catorze', 'quinze', 'dezesseis', 'dezesete', 'dezoito', 'dezenove']
- centenas = ['cento', 'duzentos', 'trezentos', 'quatrocentos', 'quinhetos', 'seicentos', 'setecentos', 'oitocentos', 'novecentos']
- # Mil
- falta = numero
- escrevendo = falta/1000
- falta = falta - escrevendo*1000
- if (escrevendo >= 1 and escrevendo <= 9)
- mils = numeroPortugues escrevendo
- numExtenso = numExtenso + unidades[escrevendo-1] + ' mil' + e(falta).to_s
- elsif (escrevendo == 10)
- numExtenso = numExtenso + dezenas[(escrevendo/10)-1] + ' mil' + e(falta).to_s
- elsif (escrevendo >= 11 and escrevendo <= 19)
- numExtenso = numExtenso + especiais[escrevendo-11] + ' mil' + e(falta).to_s
- elsif (escrevendo >= 20 and escrevendo <= 99)
- numExtenso = numExtenso + dezenas[(escrevendo/10)-1] + ' mil' + e(falta).to_s
- elsif (escrevendo == 100)
- numExtenso = numExtenso + 'cem' + ' mil' + e(falta).to_s
- elsif (escrevendo >= 101 and escrevendo <= 109)
- numExtenso = numExtenso + centenas[(escrevendo/100)-1] + e(falta).to_s + unidades[(escrevendo)-101] + ' mil' + e(falta).to_s
- elsif [110,210].include?(escrevendo)
- numExtenso = numExtenso + centenas[(escrevendo/100)-1] + e(falta).to_s + dezenas[(escrevendo/10)-11] + ' mil' + e(falta).to_s
- end
- # Centenas
- escrevendo = falta/100
- falta = falta - escrevendo*100
- if (escrevendo == 1 and falta == 0)
- cents = numeroPortugues escrevendo
- numExtenso = numExtenso + 'cem'
- elsif escrevendo > 0
- numExtenso = numExtenso + centenas[escrevendo-1] + e(falta).to_s
- end
- # Dezenas
- escrevendo = falta/10
- falta = falta - escrevendo*10
- if escrevendo > 0
- if ((escrevendo == 1) and (falta > 0))
- numExtenso = numExtenso + especiais[falta-1]
- falta = 0
- else
- numExtenso = numExtenso + dezenas[escrevendo-1] + e(falta).to_s
- end
- end
- # Unidades
- escrevendo = falta
- falta = 0
- if escrevendo > 0
- numExtenso = numExtenso + unidades[escrevendo-1]
- end
- numExtenso
- end
- puts numeroPortugues(32)
- puts numeroPortugues(100)
- puts numeroPortugues(132)
- puts numeroPortugues(500)
- puts numeroPortugues(532)
- puts numeroPortugues(1000)
- puts numeroPortugues(1125)
- puts numeroPortugues(10000)
- puts numeroPortugues(10125)
- puts numeroPortugues(11000)
- puts numeroPortugues(11125)
- puts numeroPortugues(21125)
- puts numeroPortugues(99999)
- puts numeroPortugues(100000)
- puts numeroPortugues(109125)
- puts numeroPortugues(120125)
Add Comment
Please, Sign In to add comment