REM ***** BASIC *****
Sub nomNumero()
Dim unidades(20), decenas(10), centenas(10), miles(1) As String
Dim nombre As String
Dim num As Integer
Dim veintes As Boolean
Dim big As Boolean
veintes = False
big = False
unidades(0) = "cero"
unidades(1) = "uno"
unidades(2) = "dos"
unidades(3) = "tres"
unidades(4) = "cuatro"
unidades(5) = "cinco"
unidades(6) = "seis"
unidades(7) = "siete"
unidades(8) = "ocho"
unidades(9) = "nueve"
unidades(10) = "diez"
unidades(11) = "once"
unidades(12) = "doce"
unidades(13) = "trece"
unidades(14) = "catorce"
unidades(15) = "quince"
unidades(16) = "dieciseis"
unidades(17) = "diecisiete"
unidades(18) = "dieciocho"
unidades(19) = "diecinueve"
decenas(0) = "veinte"
decenas(1) = "diez"
decenas(2) = "veinti"
decenas(3) = "treinta"
decenas(4) = "cuarenta"
decenas(5) = "cincuenta"
decenas(6) = "sesenta"
decenas(7) = "setenta"
decenas(8) = "ochenta"
decenas(9) = "noventa"
centenas(0) = "cien"
centenas(1) = "ciento"
centenas(2) = "doscientos"
centenas(3) = "trescientos"
centenas(4) = "cuatrocientos"
centenas(5) = "quinientos"
centenas(6) = "seiscientos"
centenas(7) = "setecientos"
centenas(8) = "ochocientos"
centenas(9) = "novecientos"
miles(1) = "mil"
num = Val(InputBox("escribe un numero menor o igual a mil: "))
If num = 1000 Then
nombre = miles(1)
num = num - 1000
End If
If num = 100 Then
nombre = centenas(0)
num = num - Int(num / 100) * 100
End If
If num > 100 And num < 1000 Then
nombre = centenas(Int(num / 100))
num = num - Int(num / 100) * 100
End If
If num = 20 Then
nombre = nombre & " " & decenas(0)
End If
If num > 20 Then
big = True
nombre = nombre & " " & decenas(Int(num / 10))
If Int(num / 10) = 2 Then
veintes = True
big = False
End If
num = num - Int(num / 10) * 10
End If
If num > 0 And num <= 20 Then
if num = 20 then
nombre = nombre & unidades(num)
elseif veintes Then
nombre = nombre & unidades(num)
elseif num <20 and not big then
nombre = nombre & " " & unidades(num)
else
nombre = nombre & " y " & unidades(num)
End If
End If
MsgBox (nombre)
End Sub