Monografias | Funciones y procedimientos en Visual Basic 2005 para calcular el valor en letras de un monto y el detalle del vuelto correspondienteFunciones y procedimientos en Visual Basic 2005 para calcular el valor en letras de un monto y el detalle del vuelto correspondienteResumen: Este programa ha sido desarrollado en Microsoft Visual Basic 2005. El usuario debe introducir un monto mayor o igual a $0.00 y menor o igual a $100.00. Si se introdujera un monto diferente de los valores permitidos, aparecerá un mensaje diciendo: “El monto no puede ser mayor que $100.00”.
ÍNDICE
Module
Module1
Public Function
unidades(ByVal montoapagar
As Integer)
As Integer
unidades =
Val(Strings.Right(Str(montoapagar), 1)) 'A partir de
la derecha, toma un valor, de modo que devuelve las unidades.
End
Function
Public Function
decenas(ByVal montoapagar
As Integer)
As Integer
decenas =
Val(Strings.Left(Strings.Right(Str(montoapagar), 2), 1))
'A partir de la derecha, toma dos valores. Luego de
ese resultado, a partir de la izquierda toma un valor, de modo que devuelve las
decenas.
End
Function
Public Function
montoenletras1(ByVal montoapagar
As Integer)
As String
Dim
unidades1, decenas1 As
Integer
unidades1 = unidades(montoapagar)
decenas1 = decenas(montoapagar)
montoenletras1 = ""
If (montoapagar >= 30)
Then
Select Case
decenas1
Case 3
montoenletras1 += "Treinta"
Case 4
montoenletras1 += "Cuarenta"
Case 5
montoenletras1 += "Cincuenta"
Case 6
montoenletras1 += "Sesenta"
Case 7
montoenletras1 += "Setenta"
Case 8
montoenletras1 += "Ochenta"
Case 9
montoenletras1 += "Noventa"
Case 0 'Si El
valor es "100", el segundo digito de derecha a izquierda (el valor de las
decenas) es "0".
montoenletras1
+= "Cien"
End Select
Select Case
unidades1
Case 1
montoenletras1 += " y uno"
Case 2
montoenletras1 += " y dos"
Case 3
montoenletras1 += " y tres"
Case 4
montoenletras1 += " y cuatro"
Case 5
montoenletras1 += " y cinco"
Case 6
montoenletras1 += " y seis"
Case 7
montoenletras1 += " y siete"
Case 8
montoenletras1 += " y ocho"
Case 9
montoenletras1 += " y nueve"
End
Select
Return montoenletras1
Else
Select Case
montoapagar
Case 0
Return
"Cero"
Case 1
Return
"Uno"
Case 2
Return
"Dos"
Case 3
Return
"Tres"
Case 4
Return
"Cuatro"
Case 5
Return
"Cinco"
Case 6
Return
"Seis"
Case 7
Return
"Siete"
Case 8
Return
"Ocho"
Case 9
Return
"Nueve"
Case 10
Return
"Diez"
Case 11
Return
"Once"
Case 12
Return
"Doce"
Case 13
Return
"Trece"
Case 14
Return
"Catorce"
Case 15
Return
"Quince"
Case 16
Return
"Dieciséis"
Case 17
Return
"Diecisiete"
Case 18
Return
"Dieciocho"
Case 19
Return
"Diecinueve"
Case 20
Return
"Veinte"
Case 21
Return
"Veintiuno"
Case 22
Return
"Veintidos"
Case 23
Return
"Veintitres"
Case 24
Return
"Veinticuatro"
Case 25
Return
"Veinticinco"
Case 26
Return
"Veintiséis"
Case 27
Return
"Veintisiete"
Case 28
Return
"Veintiocho"
Case 29
Return
"Veintinueve"
End Select
End If
End Function
Public Function
vuelto1(ByVal montoapagar
As Integer)
As String
vuelto1 = (100
- montoapagar)
vuelto1
= "$" + vuelto1
'Concatenando "$" para la respuesta.
End
Function
Public Sub
vueltoendetalle(ByVal vuelto
As String,
ByRef billetes20 As
String, ByRef
billetes10 As String,
ByRef billetes5 As
String, ByRef
billetes1 As String)
'Este es un procedimiento, no una funcion.
Notese que el primer parametro es por valor y los demas por referencia. Es
porque el primer parametro es para darle datos con que trabajar al procedimiento
y los demas son donde se hacen los intercambios u operaciones. Los ultimos 4
parametros tienen que ser "ByRef", pues de lo contrario el programa no da error
pero no funcionaria correctamente, pues esperaria parametros por valor
provenientes de los TextBox. Lo que se pretende es que el procedimiento realice
las respectivas operaciones y modifique las variables correspondientes que se le
dan como parametro, de modo que imprimira los resultados en los TextBox
correspondientes cuando estos se pasen correctamente como parametros del
procedimientos cuando este sea llamado por el programa.
Dim residuo As
Integer 'Ira
almacenando los residuos
billetes20 = Str(Int(vuelto / 20)) 'Cuantos billetes
de $20 se necesitan para dar el vuelto.
'billetes20 = Str(vuelto Mod 20) '"Str()" porque los
parametros del procedimiento son tipo String, entonces se requiere la conversion.
residuo
= vuelto Mod 20
'Residuo luego de dar los billetes de $20.00
billetes10 = Str(Int(residuo / 10)) 'Cuantos billetes
de $10 se necesitan para dar el vuelto.
residuo
= residuo Mod 10
'Residuo luego de dar los billetes de $10.00.
billetes5 = Str(Int(residuo / 5)) 'Cuantos billetes
de $5 se necesitan para dar el vuelto.
residuo
= residuo Mod 5
'Residuo luego de dar los billetes de $5.00.
billetes1 = Str(Int(residuo / 1)) 'Cuantos billetes
de $1 se necesitan para dar el vuelto.
residuo
= residuo Mod 1
'Residuo luego de dar los billetes de $1.00. Esta linea realmente no tiene
sentido, pues dividir entre 1 no dara residuo diferente de cero, entonces se
sabe que el residuo es cero.
End Sub
End
Module
CONCLUSIÓN
Jaime Montoya Publicación enviada por Jaime Montoya Contactar http://www.jaimemontoya.com/ Código ISPN de la Publicación EkpkkuupAZMNFRMsLe Publicado Tuesday 5 de February de 2008 Ultimas Publicaciones en ilustrados.com
ilustrados.com nace con el fin difundir el conocimiento publicando trabajos de investigación, monografias, tesis, presentaciones powerpoint y afines. Publicar trabajos en ilustrados.com ha alcanzado prestigio y reconocimiento internacional siendo cada vez más el número de académicos, empresas, investigadores, científicos que consultan las publicaciones de nuestro portal. | |||||||||