All pastes #389492 Raw Edit

otra

public text v1 · immutable
·published 2007-03-10 19:24 UTC
rendered paste body
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

veintes = 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(1) = "cien"
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 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
    nombre = nombre & " " & decenas(Int(num / 10))
    If Int(num / 10) = 2 Then
        veintes = True
    End If
    num = num - Int(num / 10) * 10
End If

If num > 0 And num <= 20 Then
    If veintes Then
        nombre = nombre & unidades(num)
    Elseif num >=10 and num <20 then	
    	nombre = nombre & " " & unidades(num)
    else
        nombre = nombre & " y " & unidades(num)
    End If
End If


MsgBox (nombre)

End Sub