Ilustrados comunidad mundial educativa
Inicio | Escribenos
User: Pass: Recordar ó (Registrate!)

| !Publicar Articulo¡

Funciones y procedimientos en Visual Basic 2005 para calcular el valor en letras de un monto y el detalle del vuelto correspondiente

Resumen: 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”.
2,817 visitas
Rating: 0
Tell a Friend
Autor: Jaime Montoya

ÍNDICE
Resumen
Desarrollo
· Pantalla inicial
· Monto de $0.00
· Monto de $5.00
· Monto de $13.00
· Monto de $47.00
· Monto de $82.00
· Monto de $96.00
· Monto de $100.0
· Click al botón limpiar
· Click al botón salir
Código del programa
Código del formulario y sus correspondientes procedimientos
Conclusión

RESUMEN

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”. El TextBox donde el usuario introduce el monto ha sido programado de manera tal que únicamente permite que se escriban números del 0 al 9 y permite también usar la tecla backspace para borrar valores introducidos.

DESARROLLO
Todo esto controlado con el evento KeyPress. El programa convierte el monto en números a letras, mostrando también el vuelto correspondiente luego de haber pagado con un billete de $100.00. Este valor no cambia, se asume que el pago siempre se efectúa con un billete de $100.00. Luego el vuelto en detalle consiste en mostrar el número de billetes de cada valor que se deben dar para entregar el vuelto, dando el número mínimo de billetes posible, es decir que no se deben dar todos los billetes con valores de $1.00 como vuelto, sino que sea el número mínimo de billetes posible.

El botón Limpiar borra los valores previos (excepto el efectivo de $100.00 que es una constante para este programa) y el botón Salir está programado para pedir confirmación antes de cerrar y salirse del programa.

A continuación se presentan impresiones de pantalla del programa en ejecución para comprender con facilidad el funcionamiento:

PANTALLA INICIAL


MONTO DE $0.00


MONTO DE $5.00


MONTO DE $13.00


MONTO DE $47.00


MONTO DE $82.00


MONTO DE $96.00


MONTO DE $100.0


CLICK AL BOTÓN LIMPIAR


CLICK AL BOTÓN SALIR


CÓDIGO DEL PROGRAMA
Los TextBox tienen los siguientes nombres de arriba hacia abajo:

montoapagar
montoenletras
efectivo
vuelto
billetes20
billetes10
billetes5
billetes1

Los tres botones tienen los siguientes nombres de izquierda a derecha:

calcular
limpiar
salir

CÓDIGO DEL FORMULARIO Y SUS CORRESPONDIENTES PROCEDIMIENTOS
 

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
Este sencillo programa permite comprender el uso y utilidad de funciones y procedimientos, así como percibir la diferencia entre la una y la otra. Básicamente la diferencia es que una función devuelve uno y sólo un valor, mientras que un procedimiento puede devolver varios valores o incluso no devolver ninguno.

Las funciones y procedimientos son fundamentales en la programación orientada a objetos, por lo cual es necesario comprender y utilizar adecuadamente estas poderosas herramientas. Analizar este programa y comprenderlo en su totalidad será de gran ayuda para aprender el uso y utilidad de las funciones y procedimientos.

Descarga el programa aquí

AUTOR

Jaime Montoya
webmaster@jaimemontoya.com
www.jaimemontoya.com
Santa Ana, 29 de enero de 2008
El Salvador

Articulos relacionados:
Funciones para validación de fechas
Resumen:
Las funciones que más adelante se explican fueron desarrolladas por mí durante la primera mitad de los años ochenta, cuando me desempeñaba como instructor de BASIC. Para ...
Introducción a XML (Extensible Markup Language)
Resumen:
¿Qué es XML?. Estructura de XML. Estructuras lógicas. Aplicaciones de XML. Utilidades de XML. Desarrollo de aplicaciones con XML. Instalación (Requerimientos de Hardware ...
CMDB(Configuration Manager Database) (doc)
Resumen:
La informática no es una ciencia estancada sino que por el contrario, evoluciona y va cambiando con el paso del tiempo. Con el paso de los años, se ha observado una marca...
Propuestas de ejercicios para desarrollar habilidades en la enseñanza de la informática en las carreras de humanidades de las sedes universitarias municipales
Resumen:
Los sistemas operativos constituyen una parte importante de cualquier sistema de cómputo, estos últimos se pueden ver como un conjunto de capas (figura 6.1) que van desde...
Proyecto de Programación de convertir entre Sistemas Numéricos
Resumen:
Este Proyecto de “Convertidor de Cantidades”, ha sido diseñado de forma sencilla para el usuario, en el cual podrá ingresar cualquier número y poder convertirlo a: Decima...
Copyright © 2011 ilustrados.com, Monografias, tesis, bibliografias, educacion. Tofos los temas y publicaciones son propiedad de sus respectivos autores ©