Vous êtes sur la page 1sur 30

LABORATORIO II - AO 2008

I N D I C E D E C O N T E N I D O S
C C A A P P I I T T U U L L O O V V I I


VI . FUNDAMENTOS DE PROGRAMACI N..................................195
VI .1. Los lenguajes de programacin............................................195
VI .2. Creacin de programas ejecutables......................................196
VI .3. La Ayuda (Help)..................................................................197
VI .4. Modular izacin...................................................................198
VI .5. Subrutinas..........................................................................199
VI .5.i. Subrutinas mediante etiquetas .......................................199
VI .6. Procedimientos y Funciones................................................200
VI .6.i. Procedimientos Generales .............................................201
VI .6.ii. Llamar a Procedimientos Sub.........................................201
VI .6.iii. Salir del procedimiento Sub.........................................203
VI .6.iv. Procedimiento Function.................................................203
VI .6.iv.1. Valores devueltos........................................................205
VI .6.v. Llamar a procedimientos Function .................................206
VI .6.v.1. Funcin o Procedimiento recursivo .............................207
VI .7. Argumentos y parmetros ...................................................207
VI .7.i. Definir un parmetro para un procedimiento..................209
VI .7.ii. Pasar argumentos a un procedimiento............................211
VI .8. Pasar por valor o por referencia .........................................212
VI .8.i. Pasar argumentos por valor: ByVal ................................212
VI .8.ii. Pasar argumentos por referencia: ByRef........................213
VI .9. Ejercicios Resueltos............................................................214
VI .10. Mdulos en Formularios ................................................217
VI .11. Agregar un mdulo a un proyecto...................................218
VI .11.i. I niciar un programa......................................................218
VI .12. Alcance del Cdigo.........................................................219
VI .13. Ejercicio propuesto.......................................................220







CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 194













PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 195

Mg. Ing. Ftima Martnez

VI . FUNDAMENTOS DE PROGRAMACIN
Segn el sentido informtico un programa (Garca de J aln, J . y otros; 1999:24)
est constituido por algoritmos que son sentencias que operan sobre datos
contenidos en las variables. Estos datos y algoritmos estn incluidos dentro
de funciones o procedimientos.
VI .1. Los lenguajes de programacin
Los lenguajes de programacin son herramientas que nos permiten crear programas
y software. Una computadora funciona bajo control de un programa.
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar
nel comportamiento de una mquina, particularmente una computadora. Consiste
en un conjunto de reglas sintcticas y semnticas que definen su estructura y el
significado de sus elementos, respectivamente (Wikipedia).
Los procesadores usados en las computadoras son capaces de entender y actuar
segn lo indican programas escritos en un lenguaje llamado lenguaje de mquina.
Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras:
Mediante un programa que va adaptando las instrucciones conforme son
encontradas. A este proceso se lo llama interpretar y a los programas que lo
hacen se los conoce como intrpretes.
Traduciendo este programa al programa equivalente escrito en lenguaje de
mquina. A ese proceso se lo llama compilar y al traductor se lo conoce como
compilador.
Mientas se compila se verifican errores. Si hay un error se interrumpe. El
compilador revisa los errores de sintaxis al presionar [ENTER]; los errores
de semntica los detecta en el momento de ejecucin.
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio
de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores,
sino hasta que luego de haber compilado el programa, ya no aparecen errores en el
cdigo.
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 196

El compilador por excelencia es Microsoft Visual Basic que a su vez es un I DE para
el lenguaje, entorno de trabajo que integra funciones de: diseo, edicin,
compilacin y depuracin de proyectos mediante la interfaz grfica.

VI .2. Creacin de programas ejecutables
Una vez finalizada la programacin de una aplicacin, se puede crear un programa
ejecutable para su distribucin e instalacin en distintas computadoras, inclusive en
las que no este instalado Visual Basic 6.0.
Cuando se crea un programa ejecutable se genera un archivo cuya extensin ser
(.EXE). Para que este programa funcione solamente se necesita que el fichero
MSVBVM60.DLL est instalado en el directorio de C:\Windows\System o
C:\WinNT\System32.
En el caso de proyectos ms complejos en los que se utilicen muchos controles
pueden ser necesarios ms ficheros, la mayora de ellos con extensiones .ocx, .vbx o
.dll . Para saber en cada caso cuales son los ficheros necesarios, se puede consulta el
fichero .vbp que contiene la descripcin completa del proyecto. Casi todos esos
ficheros se instalan automticamente al instalar el compilador de Visual Basic 6.0
en el ordenador. (Rodrguez Bucarelly, C. M.; 2004:24)
Para crear un archivo ejecutable en Visual Basic, el proceso es sencillo:
1. En el men Archivo, ejecute Generar <NombreProyecto>.exe
2. I ngrese el nombre para el archivo ejecutable.
3. Para aadir informacin especfica de versin:
En la ficha Generar del cuadro de dilogo Propiedades del Proyecto escriba los
nmeros de versin y el texto de informacin de la versin, y l uego haga clic en
[Aceptar].
Adems del archivo ejecutable, se debe de proporcionar diversas DLL's y otros
archivos a los usuarios. Se debera crear un programa de instalacin que instale la
aplicacin en la computadora del usuario. (Matta Gonzlez, D. A.; 2003:73)

PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 197

Mg. Ing. Ftima Martnez

VI .3. La Ayuda (Help)
Como la mayora de las aplicaciones de Microsoft, Visual Basic 6.0 dispone de un
Help excelente a travs de una interfaz de usuario similar a la de I nternet Explorer.
Desde un control, una propiedad o un formulario, o una palabra clave seleccionada
en la ventana de cdigo, se puede utilizar la Ayuda pulsando la tecla [F1]. Otra
manera es mediante las opciones del men Ayuda.

CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 198

En caso de requerir ayuda sobre un determinado tipo de control , se puede acceder
tambin a todos y cada uno de sus propiedades, eventos y mtodos con las opciones
Propiedades, Mtodos y Eventos, respectivamente.
VI .4. Modularizacin
A medida que los programas se van desarrollando y aumentan de tamao, se
convertiran rpidamente en sistemas poco manejables si no fuera por l a
modularizacin (Tecuapacho Cosetl, I ; 2006).
La modularizacin es un proceso que consiste en dividir un programa muy grande
en una serie de mdulos mucho ms pequeos y manejables.
A estos mdulos se les suele denominar de distintas formas (subprogramas,
subrutinas, procedimientos, funciones, etc.) segn los distintos lenguajes. Pero la
idea es siempre la misma: dividir un programa grande en un conjunto de
subprogramas o funciones ms pequeas que son llamadas por el programa
principal; stas a su vez llaman a otras funciones ms especficas y as
sucesivamente .
Entre otras, las principales ventajas que representa la divisin de un programa en
unidades ms pequeas o funciones son las siguientes:
1. Modularizacin. Cada funcin tiene una misin muy concreta, de modo que
nunca tiene un nmero de lneas excesivo y siempre se mantiene dentro de
un tamao manejable. Puede ser desarrollada y comprobada por separado y
adems, la misma funcin puede ser llamada muchas veces en el mismo
programa e incluso puede ser reutilizada por otros programas.
2. Ahorro de memoria y tiempo de desarrollo. En la medida en que una misma
funcin es utilizada muchas veces, el nmero total de lneas de cdigo del
programa disminuye y tambin lo hace la probabilidad de introducir errores
en el programa.
3. Independencia de datos y ocultamiento de informacin. Una de las fuentes
ms comunes de errores en los programas son los efectos colaterales o
alteraciones que se pueden producir entre distintas partes del programa. Es
muy frecuente que al hacer una modificacin para aadir una funcionalidad
o corregir un error, se introduzcan nuevos errores en partes del programa
que antes funcionaban correctamente. Una funcin es capaz de mantener
una gran independencia con el resto del programa, manteniendo sus propios
datos y definiendo muy claramente la interfaz o comunicacin con la funcin
que la ha llamado y con las funciones a las que llama, y no teniendo ninguna
posibilidad de acceso a la informacin que no le compete.
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 199

Mg. Ing. Ftima Martnez
VI .5. Subrutinas
La tcnica de modularizacin se usa mucho en programacin. Suele llamarse a esta
tcnica, diseo descendente, metodologa del divide y vencers o programacin top-
down. Segn la tcnica en lugar de resolver una tarea compleja y tediosa se
resuelven otras ms sencillas y a partir de ellas se llega a la solucin. Para ello las
subrutinas son ideales.

Subrutina, porcin del cdigo dentro de un programa ms grande que
ejecuta una determinada tarea. Se encarga de resolver un problema
especfico. Tienen un nombre para identificarlas y luego poder llamarlas
para ser utilizadas.
Pueden ser una porcin de cdigo identificada por una etiqueta, un
procedimiento o una funcin.
Tienen un principio y un fin y segn el alcance pueden ser de tipo
privadas o pblicas.
VI .5.i . Subrutinas mediante etiquetas
La sentencia GoTo permite saltar la ejecucin de un programa hacia una lnea
especfica que, por medio de una etiqueta, agrupa varias sentencias (Birnios, B. y
Birnios, M.; 2003: 249).

Ejemplo de
sentencia
GOTO
Numer o = 1
I f Numer o = 1 t hen
GoTo r ut i na1
El se
GoTo r ut i na2
End i f
Rut i na1:
Di a = Lunes
Ret ur n
Runt i na2:
Di a = Ot r o d a
Ret ur n
En lugar de GoTo se usan ciclos, procedimientos y funciones.

Nota: conviene evitar el uso de la sentencia GoTo. Es una mala costumbre
que lleva a escribir un cdigo desordenado, sin control. Su empleo se
justifica slo para la captura y manejo de errores.
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 200

VI .6. Procedimientos y Funciones
En Visual Basic 6.0 se distingue entre funciones y procedimientos Sub. La
diferencia fundamental entre un procedimiento Sub y una funcin es que sta
ltima retorna un valor al programa que la invoca, por lo tanto puede ser utilizada
en una expresin, no as los procedimientos que no devuelven ningn valor. El valor
de retorno ocupa el lugar de la llamada a la funcin donde esta aparece
Un procedimiento Sub es un segmento de cdigo independiente del resto, que una
vez llamado por el programa, ejecuta un nmero determinado de instrucciones, sin
necesidad de devolver ningn valor al mismo (puede dar resultados modificando los
argumentos), mientras que una funcin siempre tendr un valor de retorno.
Estos bloques bsicos son llamados en forma genrica con la palabra procedimiento.
Resultan muy tiles para condensar las tareas repetitivas o compartidas, como
clculos utilizados frecuentemente, manipulacin de texto y controles, y operaciones
con bases de datos.
Un procedimiento es una especificacin de la serie de acciones, los actos o
las operaciones que tienen que ser ejecutados de manera semejante para
obtener siempre el mismo resultado en las mismas circunstancias.
Visual Basic (Matta Gonzlez, D. A.; 2003: 63) trabaja con dos tipos de
procedimientos: los procedimientos de evento (explicitados en el captulo anterior) y
los procedimientos generales.
En el siguiente ejemplo se muestra una subrutina creada automticamente por
Visual Basic al programar en un formulario el evento Click:

Ejemplo de
Procedimiento
de Evento
Cuando en un formulario se inserta un botn de comando
llamado Command1 y desde la ventana de eventos se selecciona
el evento Click del mismo se crea la siguiente subrutina:
Pri vate Sub Command1_Cl i ck( )

End Sub

La palabra Sub le sigue el nombre de la rutina que la identifica, en este caso
Command1_Click(). Private identifica una subrutina o procedimiento de tipo
Privado, esto quiere decir que se la puede utilizar solo en el formulario o mdulo
donde est declarada o escrita.
Tambin se pueden crear Procedimientos y Subrutinas propios para ejecutar una
determinada tarea.
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 201

Mg. Ing. Ftima Martnez
VI .6.i . Procedimientos Generales
Los procedimientos generales son procedimientos Sub o Function que son
creados para que lleven a cabo tareas especficas, estos deben ser invocados de
manera explcita.
Para crear un procedimiento general, se debe abrir la ventana de cdigo y:
Ejecutar del men Herramientas Agregar procedimiento
Tambin, escribiendo el encabezado de procedimiento Sub o Function
seguido por el nombre del procedimiento, en una lnea en blanco dentro
de la ventana de cdigo y presionando [ENTER]
Una vez que se define un procedimiento general, se le debe llamar
especficamente desde la aplicacin. Por el contrario, un procedimiento de evento
permanece inactivo hasta que se le llama para responder a eventos provocados
por el usuario o desencadenados por el sistema.
Para llamar a un procedimiento general puede especificarse cualquiera de l as
siguientes maneras:
Sub ProcedimientoBorrar() Funct i on Obt ener Coor d( )
Visual Basic responde completando la plantilla del nuevo procedimiento.

VI .6.i i . Llamar a Procedimientos Sub
Como se dijo anteriormente, los procedimientos Sub no retornan valores. Cada
vez que se llama al procedimiento se ejecutan las instrucciones que hay entre
Sub y End Sub.
Hay dos formas de llamar a un procedimiento Sub. Una de ellas es escribiendo el
nombre del procedimiento en el lugar donde queremos que se ejecute.

Ejemplo de
Procedimiento
General
Un procedimiento muy simple que tiene la funcin especfica
de borrar el contenido de 3 controles Label:
Pri vate Sub Procedi mi entoBorrar( )
l abel 1 = " "
abel 2 = ""
l abel 3 = " "
End Sub
Nota: Si se tiene cdigo duplicado en varios procedimientos de evento,
conviene colocar el cdigo en un procedimiento general y luego invocar a
ste desde los procedimientos de evento.
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 202


Ejemplo de
llamar a un
Procedimiento
Supongamos el ejemplo anterior en el que tenemos un formulario
con 3 controles Label (label1, label2 y label3). Si queremos llamar
a ese procedimiento que borrar el contenido de los Label al
hacer click en el Command1, lo haramos as:
Pri vate Sub Command1_Cl i ck( )
Procedi mi entoBorrar
End Sub
Al presionar el Command1, VB detecta el nombre ProcedimientoBorrar, y
automticamente salta al lugar donde se ha creado el procedimiento y
ejecuta las lneas de cdigo que encuentre en ese procedimiento.
Otra manera para llamar a un procedimiento es emplear la instruccin
Call con el nombre del procedimiento, quiere decir llamar, pero en este
caso si se utiliza Call y el procedimiento contiene parmetros (se ver ms
adelante), stos debern ser pasados entre parntesis.

Ejemplo de
llamar a un
Procedimiento
con Call
Publ i c Sub Sel ecci onar( Cuadro As TextBox)
Cuadr o. Sel St ar t = 0
Cuadr o. Sel Lengt h = Len( Cuadr o. Text )
End Sub
Si queremos llamar a ste procedimiento que seleccionar el
contenido de un TextBox al hacer click en el Command1, lo
haramos as:
Pri vate Sub Command1_Cl i ck( )
Cal l Sel ecci onar ( obj et o)
End Sub
Si se omite Call, se omiten tambin los parntesis alrededor de la lista de
argumentos. En el ejemplo anterior sera: Seleccionar objeto

La principal ventaja de crear procedimientos de cdigo es que evita
tener que escribir varias veces las mismas instrucciones en un
programa, el cdigo se hace mucho mas funcional y entendible, se
pueden dividir un problema (una rutina), en varios procedimientos y
probarlos independientemente, y adems la posibilidad de enviar
parmetros a los procedimientos.

PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 203

Mg. Ing. Ftima Martnez
VI .6.i i i . Salir del procedimiento Sub
Todos los procedimientos terminan cuando aparece la palabra clave End Sub
Una vez que se ha terminado de ejecutar las instrucciones que estn dentro del
bloque del procedimiento, vuelve a la lnea siguiente de donde fue llamado el
mismo, y ejecuta todas las lneas restantes de cdigo. En el ejemplo anterior no
ejecutara nada ms por que no hay ninguna otra instruccin debajo de
Seleccionar.
Muchas veces resulta necesario salir antes de un procedimiento, por ejemplo al
cumplirse una condicin. Para ello se puede utilizar la sentencia Exit Sub. Con
lo cual se logra que los procedimientos terminen en el mismo punto, pero no por
ello se debe abusar de su uso.

Ejemplo del
uso de EXIT
SUB
Sub Di vi di r ( Operador As I nteger, Operador2 As
I nteger)
Di mResul t ado As I nt eger
I f Oper ador 2 <= 0 t hen
Exi t Sub
End i f
Resul t ado = Oper ador 1/ Oper ador 2
End Sub
VI .6.i v. Procedimiento Function
Un procedimiento Function consiste en una serie de instrucciones de Visual
Basic delimitadas por las instrucciones Function y End Function. El
procedimiento Function realiza una tarea y a continuacin, devuelve el control
al cdigo de llamada. Cuando devuelve el control, tambin devuelve un valor al
cdigo de llamada.
Cada vez que se llama a un procedimiento, se ejecutan las instrucciones de ste,
desde la primera instruccin ejecutable tras la instruccin Function hasta la
primera instruccin End Function, Exit Function o Return que se encuentre.
Un procedimiento Function puede aceptar argumentos, como constantes,
variables o expresiones, que le pasa el cdigo de llamada.
La sintaxis correspondiente a una funcin es la siguiente:
[Stati c] [Pri vate] Functi on nombre ([parmetros]) [As ti po]
[ sent enci as]
[ nombre = expr esi on]
[ Exi t Functi on]
[ sent enci as]
[ nombre = expr esi on]
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 204

End Functi on
Donde:
nombre es el nombre de la funcin.
Para especificar el tipo se utiliza la clusula As Tipo (I nteger, Long,
Single, Double, Currency, String o Variant). Ser de un tipo u otro
dependiendo del dato que devuelva.
Parmetros: son los argumentos que son pasados cuando se llama a la
funcin. Visual Basic asigna el valor de cada argumento en la llamada al
parmetro que ocupa su misma posicin. Si no se indica un tipo
determinado los argumentos son Variant por defecto. Los argumentos
pueden ser pasados por referencia o por valor (se ver ms adelante).
El nombre de la funcin, su valor de retorno, acta como una variable
dentro del cuerpo de la funcin. El valor de la variable expresin es
almacenado en el propio nombre de la funcin. Si no se efecta esta
asignacin, el resultado devuelto ser 0 si la funcin es numrica, nulo
("") si la funcin es de caracteres, o Empty si la funcin es Variant.
Exit Function permite salir de una funcin antes de que sta finalice y
devolver as el control del programa a la sentencia inmediatamente a
continuacin de la que efectu la llamada a la funcin.
End Function marca el final del cdigo de la funcin, al igual que la Exit
Function, devuelve el control del programa a la sentencia siguiente a la
que efectu la llamada, pero lgicamente una vez finalizada la funcin.


Ejemplo
de
Function
En este ejemplo, el procedimiento Function del tipo Integer recibe un
nmero y devuelve ese nmero al cuadrado.
Publ i c Functi on Cuadrado( N As I nteger) As I nteger
Cuadr ado = N * N
End Functi on

Al final de la declaracin de la funcin Cuadrado y despus de la lista de los
parmetros dice As Integer, esto es por que las funciones retornan o devuelven
un valor. En este caso la funcin es de tipo Integer o mejor dicho devolver un
valor de tipo Integer y luego ese valor devuelto se lo puede utilizar en otra parte
del programa.
Las Funciones pueden retornar casi cualquier tipo de datos, como nmeros,
cadenas, fechas, arreglos, vectores.
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 205

Mg. Ing. Ftima Martnez
VI.6.iv.1. Valores devueltos
El valor que un procedimiento Function devuelve al cdigo de llamada se
denomina valor devuelto. El procedimiento devuelve dicho valor de dos
maneras:
1. La funcin asigna un valor a su propio nombre de funcin en una o
ms instrucciones del procedimiento. El control no vuelve al
programa de llamada hasta que se ejecuta una instruccin Exit
Function o End Function. Esto se ilustra en el siguiente ejemplo:

Ejemplo
de valor
devuelto
La siguiente funcin acepta un cadena de caracteres y un entero y
devuelve una cadena de caracteres:
Functi on QuComer ( D aSemana As Stri ng, Hora As
I nteger) As Stri ng
' Devuel ve el men del al muer zo basndose en el d a
y l a hor a.
I f D aSemana = " Vi er nes" t hen
QuComer = " Pescado"
El se
QuComer = " Pol l o"
End I f
I f Hor a > 4 Then QuComer = " Demasi ado t ar de"
End Functi on
2. Utiliza la instruccin Return para especificar el valor devuelto y
devuelve el control inmediatamente al programa de llamada. Esto
se ilustra en el siguiente ejemplo:

Ejemplo
de
Return
Functi on QuComer ( D aSemana As Stri ng, Hora As
I nteger) As Stri ng
' Devuel ve el men del al muer zo basndose en el d a
y l a hor a.
I f D aSemana = " Vi er nes" t hen
Return "Pescado"
El se
Return " Pol l o"
End I f
I f Hor a > 4 Then Return " Demasi ado t ar de"
End Functi on


La ventaja de asignar el valor devuelto al nombre de la funcin es que el
control permanece en el procedimiento hasta que encuentra una
instruccin Exit Function o End Function, lo que permite asignar un
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 206

valor previo y si es necesario, ajustarlo despus.
VI .6.v. Llamar a procedimientos Function
La llamada a una funcin se hace de diversas formas. Normalmente se llama a
un procedimiento Function utilizando su nombre en una expresin de la misma
forma en que se llama a una funcin intrnseca de Visual Basic.
variable = nombre([argumentos])
Donde:
argumentos son un lista de constantes, variables o expresiones separadas
por comas que se pasan a la funcin. En principio, el nmero de
argumentos debe ser igual al nmero de parmetros de la funcin. Los
tipos de los argumentos deben coincidir con los tipos de sus
correspondientes parmetros, de lo contrario puede haber fallos
importantes en la ejecucin del programa. Esta regla no rige si los
argumentos se pasan por valor (concepto que se ver ms adelante).
En cada llamada a una funcin hay que incluir los parntesis, aunque sta no
tenga argumentos.

Ejemplos:
Llamar una
Funcin
El siguiente ejemplo corresponde a una funcin que devuelve como
resultado la raz cuadrada de un nmero N:
Functi on Rai z ( N As Doubl e) As Doubl e
I f N < 0 Then
Exi t Functi on
El se
Rai z = Sqr ( N)
End Functi on
La llamada a esta funcin se hace de la forma siguiente:
Cuadrada = Rai z( Num)
Las instrucciones siguientes llaman a la funcin Raiz:
Pr i nt 10 * Rai z( numer o)
X = Rai z( numer o)
I f Rai z( numer o) <= 1 Then Debug. Pr i nt " Fuer a del
i nt er val o"
X = Ot r aFunci n( 10 * Rai z( A) )
Tambin es posible llamar a una funcin igual que se llama a un procedimiento
Sub.

Las instrucciones siguientes llaman a la funcin Cuadrado (ejemplo):
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 207

Mg. Ing. Ftima Martnez
Ejemplos:
Llamar una
Funcin
Si se desea guardar el valor devuelto, se usan parntesis cuando
se invoque a la funcin:
Cal l Cuadr ado( 5) o Resul t ado = Cuadr ado ( 5)
Si se omiten los parntesis, se puede ignorar el valor devuelto y
no guardarlo en una variable. Esto puede ser til si se quiere
ejecutar una funcin y no se desea el valor devuelto. Por ejemplo:
Cuadr ado 5


A diferencia de C y C++ en Visual Basic 6.0 no es necesario devolver
explcitamente el valor de retorno, pues el nombre de la funcin ya
contiene el valor que se desea devolver. Tampoco es necesario
declarar las funciones antes de llamarlas.
Al finalizar cada funcin, se devuelve el control del programa a la
sentencia posterior a la que la invoc.
VI.6.v.1. Funcin o Procedimiento recursivo
Se dice que una funcin o que un procedimiento Sub es recursivo es si se
llaman a s mismo.

Ejemplo: de
una
Funcin
recursiva
La siguiente funcin calcula el factorial de un nmero programada de
forma recursiva:
Functi on Factori al ( N As I nteger) As Long
I f N = 0 Then
Factori al = 1 ' Condi ci n de f i nal
El se
Factori al = N * Factori al ( N - 1)
End I f
End Functi on
Si la variable N que se le pasa a la funcin vale 0, se ha llegado al final
del proceso, y por tanto se le asigna el valor 1 al valor del factorial
(recordar que 0! = 1). Caso contrario, si es distinto de 0, la funcin se
llama a ella misma, pero variando el argumento a (N-1), hasta llegar al
punto en el que N -1 =0, finalizndose el proceso.
VI .7. Argumentos y parmetros
En cualquier programa siempre es necesario hacer clculos, usar informacin,
procesarla y mostrarla. En la mayora de los casos, se necesita un lugar temporal en
el cual guardar parte o toda esa informacin. Los lenguajes de programacin
permiten guardar datos en la memoria, para ms tarde usarlos (tomarlos,
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 208

modificarlos y volverlos a guardar). Esas posiciones o lugares de la memoria donde
los programas pueden almacenar informacin son las variables.
En la mayora de los casos, un procedimiento necesita cierta informacin sobre las
circunstancias en las que se le ha llamado. Un procedimiento que ejecuta tareas
repetidas o compartidas utiliza datos distintos en cada llamada. Estos datos se
componen de variables, constantes y expresiones que se transfieren al
procedimiento cada vez que se le llama. Para comunicar esta informacin al
procedimiento, el procedimiento define un parmetro, y el cdigo de llamada
transfiere un argumento a dicho parmetro.

Un parmetro representa un valor que el procedimiento espera que se
transfiera cuando es llamado. La declaracin del procedimiento define
sus parmetros.
Los parmetros se utilizan en los procedimientos para que el procedimiento no
ejecute siempre las mismas lneas de cdigo y pueda variar, teniendo la posibilidad
de hacerlo ms dinmicamente.
Cuando se define un procedimiento Function o Sub, se especifica una lista de
parmetros entre parntesis que va inmediatamente despus del nombre de
procedimiento. Para cada parmetro, se especifica un nombre, un tipo de datos y un
mecanismo para pasar argumentos (ByVal o ByRef). Tambin se puede indicar que
un parmetro es opcional, lo que significa que el cdigo de llamada no tiene que
transferirle un valor.

El nombre de cada parmetro acta como una variable local dentro del
procedimiento. Esto significa que su perodo de duracin es igual al del
procedimiento y su mbito es el procedimiento completo.
El nombre del parmetro se utiliza del mismo modo que cualquier otra
variable.
Cuando se pasa una variable a un procedimiento, se llama argumento, representa el
valor que se transfiere a un parmetro del procedimiento. El cdigo de llamada
proporciona los argumentos cuando llama al procedimiento.
Cuando se llama al procedimiento Function o Sub, se incluye una lista de
argumentos entre parntesis que van inmediatamente despus del nombre del
procedimiento. Cada argumento se corresponde con el parmetro situado en l a
misma posicin de la lista.
A diferencia de la definicin de parmetros, los argumentos no tienen nombres.

Cada argumento es una expresin que puede contener cero o ms
variables, constantes y literales. El tipo de datos de la expresin
evaluada normalmente debe coincidir con el tipo de datos definido para
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 209

Mg. Ing. Ftima Martnez
el parmetro correspondiente, y en algn caso, debe poder convertirse
al tipo del parmetro.
VI .7.i . Definir un parmetro para un procedimiento
Los parmetros de un procedimiento se declaran igual que las variables,
especificando el nombre y el tipo de datos. Los parmetros de los procedimientos
tienen, de forma predeterminada, el tipo de dato Variant, con este tipo se puede
asignar a una variable cualquier tipo de dato, desde un nmero hasta una
cadena de caracteres. Sin embargo, puede declarar otros tipos de datos para los
parmetros.
Tambin puede especificarse el mecanismo para pasar argumentos y si se trata
de un parmetro opcional.
Para definir un parmetro de procedimiento:
1. En la declaracin del procedimiento, se agrega el nombre de parmetro a la lista
de parmetros del procedimiento, separndolo de otros parmetros mediante comas.
2. Se inserta una clusula As despus del nombre de parmetro para especificar el tipo
de datos.
3. Normalmente los parmetros se transfieren por valor, a menos que se desee que el
procedimiento pueda cambiar su valor en el cdigo de llamada. Para ello se antepone
ByVal o ByRef al nombre del parmetro para especificar el mecanismo para pasar
argumentos (por valor o referencia).
4. Si el parmetro es opcional se antepone Optional al mecanismo para pasar
argumentos y detrs del tipo de datos del parmetro, se incluye un signo igual (=) y
un valor predeterminado.
En el ejemplo siguiente se define el esquema de un procedimiento Sub con tres
parmetros.

Ejemplo:
parmetros
Las declaraciones de parmetros estn separadas, en la lista de
parmetros, mediante comas. El primer parmetro es un dato de tipo
String, el segundo un nmero entero y el tercero tambin un String.
Pri vate Sub DatosPersonal es( nombre As Stri ng, edad
As I nteger, ci udad As Stri ng)
Label 1 = nombr e
Label 2 = edad
Label 3 = ci udad
End

Sub
Ahora en el evento Click de un Command1 se llama al procedimiento
pasando los argumentos. El primer dato, como tambin el ltimo, es
un string por ende debe ir entre comillas.
Pri vate Sub Command1_Cl i ck( )
Dat osPer sonal es Luci ano, 25, La Pl at a
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 210

End

Sub
Al presionar el botn de comando se llamar al procedimiento DatosPersonales
que se haba creado anteriormente y le pasar los valores de los argumentos en
el orden en que estn declarados los parmetros en el procedimiento. Esto quiere
decir que el primer parmetro con el valor "Luciano" se almacenar o asignar a
la variable nombre, el valor 25 se le asignar a la variable edad y el ltimo valor
a la variable ciudad.
Despus que las variables ya cargaron el valor se las puede utilizar dentro del
procedimiento, como en el ejemplo anterior que se le asigna a un control Label1
el contenido de la variable nombre, al Label2 el contenido de edad y al Label3 el
contenido de la variable ciudad.
Es muy importante respetar el orden en que pasamos los parmetros en un
procedimiento, por que por ejemplo en el caso anterior si hubisemos pasado los
parmetros de esta forma:
Dat osPer sonal es 25, Luci ano, La Pl at a
El segundo parmetro "Luciano" se almacenara en la variable edad que es de
tipo I nteger y se producira un error en tiempo de ejecucin por no coincidir los
tipos de datos, ya que la variable espera un valor numrico de tipo I nteger y se
le pasa una cadena de caracteres, un dato de tipo String.
Otro punto importante es que al crear un procedimiento que va a recibir 3
parmetros, cuando se lo llama, no se puede enviar 1 parmetro o 2.
Obligatoriamente hay que pasarle los 3 parmetros que se ha declarado en el
mismo. Un ejemplo que dara un error en tiempo de ejecucin por no pasar
adecuadamente los parmetros sera:
Dat osPer sonal es Luci ano, 25
Esto dara un error de compilacin por que el
procedimiento espera recibir 3 parmetros y le
estamos pasando o enviando 2 de ellos.
El mensaje de error que muestra VB sera el
siguiente:



Hay una sentencia llamada Optional que s permite pasar parmetros de
forma opcional.
La sintaxis de los parmetros de una lista de parmetros es la siguiente:
[Optional] [ByVal | ByRef] nombreparametro As tipo_dato
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 211

Mg. Ing. Ftima Martnez
Si el parmetro es opcional, debe proporcionar tambin un valor predeterminado
como parte de su declaracin. La sintaxis para especificar un valor
predeterminado es la siguiente:
Optional [ByVal | ByRef] nombreparametro As tipo_dato = valor


Ejemplo de
Optional
Pri vate Sub Con_Parametro_Opci onal ( Nombre As_
Stri ng, Opti onal Emai l As Stri ng)
MsgBox Nombr e
MsgBox Nombr e
End Functi on

Si se llama a la subrutina anterior y se omite el parmetro Email, no dar error,
por ejemplo: Call Con_Parametro_Opcional("Maria")

Los parmetros opcionales, si o si deben estar declarados al final de la
lista de parmetros.
Por ejemplo esto no se puede declarar:
Private sub una_Rutina ( Optional Email As String, Nombre as String )
VI .7.i i . Pasar argumentos a un procedimiento
Al llamar a un procedimiento, se agrega detrs del nombre de procedimiento
una lista de argumentos entre parntesis. Se proporciona un argumento
correspondiente a cada parmetro necesario que el procedimiento define y
opcionalmente, se pueden proporcionar argumentos para los parmetros
Optional. Cuando no se proporciona un parmetro Optional en la llamada, se
debe incluir una coma para marcar su lugar en la lista de argumentos si se
indica algn argumento posterior.
Para pasar uno o varios argumentos a un procedimiento:
1. En la instruccin de llamada, se agrega parntesis detrs del nombre de
procedimiento.
2. Se coloca una lista de argumentos entre los parntesis. Hay que incluir un
argumento para cada parmetro necesario que el procedimiento define; se separan
los argumentos por comas. Cada argumento debe ser una expresin vlida que
evala el tipo de datos convertible al tipo que el procedimiento define para el
parmetro correspondiente.
3. Si un parmetro est definido como Opcional, VB puede incluirlo en la lista de
argumentos u omitirlo. Si lo omite, el procedimiento utiliza el valor predeterminado
definido para ese parmetro.
4. Si omite un argumento para un parmetro Optional y hay otro parmetro despus
de l en la lista de parmetros, se puede marcar el lugar del argumento omitido
mediante una coma adicional en la lista de argumentos.
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 212

VI .8. Pasar por valor o por referencia
Los valores que se envan como argumento a los procedimientos se pueden pasar
por valor o por referencia.
Por valor: se enva una copia de la variable, por lo tanto cualquier
cambio realizado en el procedimiento no afecta a la variable original.
Slo tendr efecto dentro del procedimiento o funcin. Una vez que
termine y finalice el mismo, la variable original pasar a valer el dato
que tena, no se modifica.
Por referencia: se enva un puntero a la variable original y cualquier
cambio dentro de la rutina afecta la variable original. El cambio
seguir mantenindose una vez que finalice la ejecucin del
procedimiento o funcin.
Cuando interesa modificar el valor de un parmetro, por ejemplo para asignarle un
nuevo valor, se puede usar los parmetros por referencia. En Visual Basic se
indican con la instruccin ByRef. En cambio para indicarle que el parmetro es por
valor se usa la instruccin ByVal.


Cuando no se indica a un parmetro de una funcin o procedimiento ni
ByVal ni ByRef asume que la misma se est enviando como referencia.
VI .8.i . Pasar argumentos por valor: ByVal
Se utiliza la palabra clave ByVal para indicar un argumento pasado por valor.
I ndica que un argumento se pasa de tal forma que el procedimiento o la
propiedad a la que se ha llamado no puede cambiar el valor de una variable
subyacente al argumento en el cdigo que realiza la llamada.
Por ejemplo:
Sub Most r ar ( ByVal Al t ur a as I nt eger , Ancho as I nt eger )
En este ejemplo slo Altura fue pasada por valor y Ancho por referencia,
cualquier cambio que se realice en esta variable, dentro del procedimiento,
permanecer al regresar al procedimiento.

Ejemplo de
ByVal
pasaje por
Valor
Pri vate Sub Command1_Cl i ck ( )
Di mUn_val or As Long
Un_val or = 100
' Se l e env a l a var i abl e por Val or ( ByVal )
Cal l Sumar ( Un_val or )
' Muest r a el val or 100, no se modi f i c en l a f unci n
Sumar
MsgBox Un_val or
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 213

Mg. Ing. Ftima Martnez
End Functi on

Sub Sumar( ByVal Val or As Long)
' Modi f i ca l a var i abl e
Val or = Val or + 100
End Sub
En el ejemplo anterior hay una Sub llamada Sumar que recibe como parmetro
una variable enviada por valor con ByVal (una copia de la variable original ), al
presionar el Commmand1.
Al entrar en la Sub Sumar, el dato se modifica: Valor = Valor + 100. Cuando
finaliza el procedimiento Sumar y retorna a la lnea siguiente de la llamada a la
Sub Sumar, muestra mediante un MsgBox el valor de la misma, en este caso es
100 y NO 200 que es el cambio que tuvo dentro del procedimiento Sumar.
Queda demostrado que al enviarla como ByVal, se enva una copia de la variable
original y cualquier cambio que se produzca, ser solo en el mbito del
procedimiento o funcin.
VI .8.i i . Pasar argumentos por referencia: ByRef
Pasar argumentos por referencia le da al procedimiento acceso al contenido real
de la variable en su ubicacin de direccin de memoria. Se puede utilizar la
palabra clave ByRef para especificar que se pasa por referencia,
I ndica que un argumento se pasa de tal forma que el procedimiento al que se ha
llamado puede cambiar el valor de una variable subyacente al argumento en el
cdigo que realiza la llamada.
En realidad no hace falta usarlo ya que en VB la forma predeterminada de pasar
valores es por referencia.
Por ejemplo:
Sub Most r ar ( ByRef Al t ur a as I nt eger , Ancho as I nt eger )
En el ejemplo los dos parmetros se pasan por referencia, salvo que en el
primero se explicita con ByRef.

Ejemplo de
ByRef
pasaje por
Referencia
Pri vate Sub Command1_Cl i ck ( )
Di mUn_val or As Long
Un_val or = 100
' Se l e env a l a var i abl e por Ref er enci a ( ByRef )
Cal l Sumar ( Un_val or )
' Muest r a el val or 200, se modi f i c en l a f unci n
Sumar
MsgBox Un_val or
End Functi on
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 214


Sub Sumar( ByRef Val or As Long)
' Modi f i ca l a var i abl e
Val or = Val or + 100
End Sub

VI .9. Ejercicios Resueltos


1. Ejercicio
Calcula el nuevo
precio agregando el
IVA

El cdigo del evento Click de Ver Precio
Private Sub cmdVer_Click()
Dim precio As Double, nuevo_prec As Double
precio = CDbl(InputBox("Ingrese el precio para calcular con IVA", "Lista de
precios"))
nuevo_prec = IVA(precio) Llama a la funcin
MsgBox "El precio con IVA es " & Str(nuevo_prec), , "Calcula Precio"
End Sub
El cdigo de la funcin IVA
Private Function IVA(x As Double) As Double
'x = x + 100 'se lo modifica, lo afecta porque es por referencia
IVA = x * 1.21
End Function


2. Ejercicio
Funcin que redondea
un nmero cantidad de
decimales ingresado.

PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 215

Mg. Ing. Ftima Martnez
El cdigo de la Funcin Redondear
Option Explicit
Dim Numero As Double
Dim Decimales As Integer
Function RedondearNumero(ByVal Valor As Variant, ByVal Decimales As
Integer) As Double
Dim Numero1 As Double, Numero2 As Double, Numero3 As Double
Dim Numero4 As Double, Frac As Double, n As Byte
n = InStr(txtNum.Text, ".") 'posicin en que se encuentra el punto decimal
n = Len(Mid(txtNum.Text, n + 1)) 'longitud de la cadena de los decimales
lblDec.Caption = Str(n)
'Si el dato de decimales es menor que el No. de decimales del nmero
If Decimales < n Then
Frac = 10 ^ Decimales
Numero1 = Valor * Frac
Numero2 = -1 * Fix(-Frac * Valor)
Numero3 = Numero1 - Numero2
If Numero3 >= 0.5 Then
Numero4 = -1 * Int(-(Numero1))
Else
Numero4 = -1 * Fix(-(Numero1))
End If
RedondearNumero = Numero4 / Frac 'devuelve en el nombre de la funcin
Else
RedondearNumero = Val(Valor) 'devuelve en el nombre de la funcin
End If
End Function
El cdigo del evento Change de la caja de texto Decimales
Private Sub txtDec_Change()
If txtDec.Text = "" Then
txtRed = ""
Exit Sub
End If
If IsNumeric(txtDec.Text) Then
Decimales = txtDec.Text
txtRed = RedondearNumero(Numero, Decimales) 'llama a la funcin
Else
MsgBox "El nmero debe ser positivo", vbInformation
txtRed.SetFocus
End If
End Sub

CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 216


3. Ejercicio
Suma dos matrices
que son cargadas en
tiempo de ejecucin
con nmeros
generados al azar.
Cada matriz est
formada por un
arreglo de TextBox.


El cdigo de la Funcin Aleatorio
Function Aleatorio() As Integer
Aleatorio = Int(Rnd * 100) + 1
End Function
El cdigo del Procedimiento Suma
Private Sub Suma(objA As TextBox, objB As TextBox, objC As TextBox)
If IsNumeric(objA) Then
objC = Val(objA) + Val(objB)
Else
objC = "#######"
End If
End Sub
El cdigo del Evento Click de los botones de Cargar
Private Sub cmdA_Click()
Dim i As Integer
For i = 0 To txtA.Count - 1
txtA(i).Text = Str(Aleatorio()) 'llama a la funcin Aleatorio
Next i
End Sub
Private Sub cmdB_Click()
Dim i As Integer
For i = 0 To txtB.Count - 1
txtB(i).Text = Str(Aleatorio()) 'llama a la funcin Aleatorio
Next i
End Sub
Private Sub Form_Load()
Dim i As Integer
Randomize
For i = 0 To txtA.Count - 1
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 217

Mg. Ing. Ftima Martnez
txtA(i) = "0"
txtB(i) = "0"
Next i
End Sub
El cdigo del Evento Change de las cajas de texto de las matrices
Private Sub txtA_Change(Index As Integer)
Suma txtA(Index), txtB(Index), txtC(Index) 'llama al procedimiento Suma
End Sub
Private Sub txtB_Change(Index As Integer)
Suma txtA(Index), txtB(Index), txtC(Index) 'llama al procedimiento Suma
End Sub
VI .10. Mdulos en Formularios
El cdigo en Visual Basic se almacena en mdulos, son porciones de cdigo que
generalmente almacenan declaraciones, procedimientos y funciones.
Las aplicaciones sencillas
1
pueden consistir en un nico formulario y todo el cdigo
de la aplicacin reside en ese mdulo de formulario. A medida que las aplicaciones
van creciendo se agregar formularios adicionales. Si el cdigo es comn a varios
formularios y no se desea duplicar el cdigo en ambos formularios, se crea un
mdulo independiente que contenga un procedimiento que ejecuta ese cdigo comn.
Este mdulo independiente debe ser un mdulo estndar.

Un sistema es modular cuando fue construido y dividido en varios
mdulos.
La gran ventaja de trabajar con mdulos es que se puede construir una biblioteca
que contenga los procedimientos compartidos y funciones definidas por el usuario y
trasladarlas hacia otros proyectos con slo copiar el archivo.
Los tres tipos de mdulos:
formulario son la base de la mayora de las aplicaciones de Visual Basic
(extensin .frm);
Si se declara el procedimiento en un mdulo de formulario, puede
ser llamado con el siguiente cdigo: For m1. Mi Pr oc
estndar son contenedores de los procedimientos y declaraciones a los que
tienen acceso otros mdulos de la aplicacin. Pueden contener
declaraciones globales (disponibles para toda la aplicacin) o a nivel de
mdulo de variables, constantes, tipos, procedimientos externos y
procedimientos globales (extensin .bas);

1
Vea en la Ayuda de Visual Basic: Mdulo de cdigo.
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 218

Si se declara el procedimiento en un mdulo estndar, puede ser
llamado con el siguiente cdigo: Mi Pr oc
Si se declara un procedimiento con el mismo nombre en dos mdulos
estndar, se debe especificar el nombre del mdulo como se muestra
en el siguiente cdigo: Modul e1. Mi Pr oc
clase son la base de la programacin orientada a objetos en Visual Basic.
Se puede escribir cdigo en mdulos de clase para crear nuevos objetos.
Estos objetos nuevos pueden incluir propiedades y mtodos
personalizados (extensin de nombre de archivo .cls).
VI .11. Agregar un mdulo a un proyecto
Para agregar un mdulo de cdigo al proyecto, se ejecuta del men Proyecto
Agregar mdulo. Aparece el
siguiente cuadro de dilogo:









VI .11.i . Iniciar un programa
Por defecto, Visual Basic asume que los programas inician su ejecucin desde el
primer formulario creado. Sin embargo a veces es posible iniciar el proyecto
desde otros formularios o mdulos.
Para especificar desde qu formulario comenzar a ejecutarse el programa se
establece desde el men Proyecto Propiedades en la ficha General el
nombre del formulario inicial.

Para incorporar un
mdulo ya existente.
Para crear un
nuevo mdulo.
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 219

Mg. Ing. Ftima Martnez


VI .12. Alcance del Cdigo
Los Procedimientos pueden ser declarados como Private (privados) o Public
(pblicos).
Los declarados como Private pueden ser llamados o invocados slo por
otros procedimientos localizados en ese formulario, mdulo o clase.
Los declarados como Public en un formulario: pueden ser llamado desde
cualquier lugar de la aplicacin especificando los nombres del formulario
y del procedimiento.
Los declarados como Public en un mdulo: estn disponibles para toda la
aplicacin, y pueden ser llamados especificando el nombre del
procedimiento.
De forma predeterminada, los procedimientos Sub son Public en todos los
mdulos, lo que significa que se les puede llamar desde cualquier parte de la
aplicacin.

El siguiente cdigo declara un procedimiento Public:
Publ i c Sub Mi Pr oc( )
End Sub



Se selecciona el
nombre del
formulario inicial.
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 220


4. Ejercicio
Calcula la Divisin Entera Mediante
barras de desplazamiento horizontal
se determinan el dividendo y el
divisor.

El cdigo de los Eventos en el formulario Form1
Private Sub Form_Load()
txtDivisor.Text = 0
txtDivide.Text = 0
End Sub
Private Sub hsbBarra1_Change()
txtDivide.Text = hsbBarra1.Value
Call Divide(txtDivide, txtDivisor)
End Sub
Private Sub hsbBarra2_Change()
txtDivisor.Text = hsbBarra2.Value
Call Divide(txtDivide, txtDivisor)
End Sub
El cdigo del Procedimiento Divide en el Mdulo
Public Sub Divide(div1 As TextBox, div2 As TextBox)
If Val(div2.Text) <> 0 Then
Form1.txtCociente = Val(div1) \ Val(div2)
Form1.txtResto = Val(div1) Mod Val(div2)
End If
End Sub
VI .13. Ejercicio propuesto
Ejercicio 1:
Crea una aplicacin en la cual resuelvas el siguiente
sistema de ecuaciones:
a) Representa en el formulario las rectas correspondientes
a cada ecuacin.
b) Presenta en el formulario los valores encontrados para X e Y que satisfagan el
sistema.
c) En el caso de que el sistema no tenga solucin real presenta un mensaje.
a1 X + b1 Y = c1
a2 X + b2 Y = c2
PROGRAMADOR UNI VERSI TARI O
LABORATORI O I I - VI SUAL BASI C
AO 2008
CAPI TULO VI

Pgina 221

Mg. Ing. Ftima Martnez
Ejercicio 2:
Crea una aplicacin en la cual ingreses las coordenadas de 3 puntos y puedas:
d) Determinar con los segmentos de rectas, dibujadas a partir de sus coordenadas,
un tringulo.
e) Determinar si el tringulo es equiltero, issceles o escaleno.
f) Presentar un mensaje con la respuesta.

Nota: Trabaja en cada ejercicio en forma modularizada creando tus propios procedimientos y
funciones en un Mdulo estndar.
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIN Mg. Ing. Ftima Martnez

Pgina 222



BI BLI OGRAF A CONSULTADA Y RECURSOS EN LA WEB
Nombre Autor/Ao Edicin, Editorial / Direccin del Sitio
Programacin
modular

http://teleformacion.edu.aytolacoruna.es/PASC
AL/document/modular.htm;(accedido
10/08/2007).
Visual Basic 6.
Programacin
Orientada a Objetos
Rodrguez Bucarelly,
C. M.; 2004
http://www.lawebdelprogramador.com/cursos/en
lace.php?idp=2175&id=93&texto=visual+basic
(accedido 10/03/2007); p. 24
Funciones y
procedimientos
Tecuapacho Cosetl, I;
2006
http://www.wikilearning.com/curso_gratis/basic
_facil- funciones_y_procedimientos/9513-8
Fundamentos de
Programacin en
Visual Basic
Matta Gonzlez, D.
A.; 2003
http://www.cs.us.es/cursos/ai-2003/VB/VB.pdf;
(accedido 20/09/2007); p. 73
Aprenda Visual Basic
6.0 como si estuviera en
Primero
Garca de Jaln, J. y
otros; 1999
http://www.tecnun.es/asignaturas/Informat1/ayudainf
/aprendainf/VisualBasic6/vbasic60.pdf; (accedido
10/03/2007); p. 24
Lenguaje de
programacin
Wikipedia
http://es.wikipedia.org/wiki/Lenguaje_de_progra
maci%C3%B3n; (accedido 20/07/2008)
Diferencias entre
parmetros y
argumentos

http://msdn.microsoft.com/es-
es/library/9kewt1b3(VS.80).aspx; (accedido
27/10/2008)
Microsoft Visual Basic
6.0. Manual de
Referencia
Birnios, B. y Birnios,
M.; 2003
Manuales USERS; MP Ediciones; Buenos
Aires; Argentina; p. 249.

Vous aimerez peut-être aussi