Capitulo 6

Anuncio
I N D I C E
D E
C O N T E N I D O S
CAPITULO VI
VI.
FUNDAMENTOS DE PROGRAMACIÓN .................................. 195
VI.1. Los lenguajes de programación............................................ 195
VI.2. Creación de programas ejecutables...................................... 196
VI.3. La Ayuda (Help).................................................................. 197
VI.4. Modularización................................................................... 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.
VI.6.v.
VI.6.v.1.
Valores devueltos........................................................ 205
Llamar a procedimientos Function ................................. 206
Función o Procedimiento recursivo ............................. 207
VI.7. Argumentos y parámetros ................................................... 207
VI.7.i.
Definir un parámetro 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.
Módulos en Formularios ................................................ 217
VI.11.
Agregar un módulo a un proyecto................................... 218
VI.11.i. Iniciar un programa ...................................................... 218
VI.12.
Alcance del Código......................................................... 219
VI.13.
Ejercicio propuesto ....................................................... 220
LABORATORIO II - AÑO 2008
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Página 194
Mg. Ing. Fátima Martínez
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 195
VI. FUNDAMENTOS DE PROGRAMACIÓN
Según el sentido informático un programa (García de Jalón, J. y otros; 1999:24)
está constituido por algoritmos que son sentencias que operan sobre datos
contenidos en las variables. Estos datos y algoritmos están incluidos dentro
de funciones o procedimientos.
VI.1.
Los lenguajes de programación
Los lenguajes de programación son herramientas que nos permiten crear programas
y software. Una computadora funciona bajo control de un programa.
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar
nel comportamiento de una máquina, particularmente una computadora. Consiste
en un conjunto de reglas sintácticas y semánticas que definen su estructura y el
significado de sus elementos, respectivamente (Wikipedia).
Los procesadores usados en las computadoras son capaces de entender y actuar
según lo indican programas escritos en un lenguaje llamado lenguaje de máquina.
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 intérpretes.
•
Traduciendo este programa al programa equivalente escrito en lenguaje de
máquina. 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 [E N T E R]; los errores
de semántica los detecta en el momento de ejecución.
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
código.
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
El compilador por excelencia es Microsoft Visual Basic que a su vez es un IDE para
el lenguaje, entorno de trabajo que integra funciones de: diseño, edición,
compilación y depuración de proyectos mediante la interfaz gráfica.
VI.2.
Creación de programas ejecutables
Una vez finalizada la programación de una aplicación, se puede crear un programa
ejecutable para su distribución e instalación 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 extensión será
(.E X E ). Para que este programa funcione solamente se necesita que el fichero
M S V B V M 6 0 . D L L esté instalado en el directorio de C : \ W i n d o w s \ System o
C : \ WinNT \ S y s t e m 3 2 .
En el caso de proyectos más complejos en los que se utilicen muchos controles
pueden ser necesarios más ficheros, la mayoría 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 descripción completa del proyecto. Casi todos esos
ficheros se instalan automáticamente al instalar el compilador de Visual Basic 6.0
en el ordenador. (Rodríguez 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. Ingrese el nombre para el archivo ejecutable.
3. Para añadir información específica de versión:
En la ficha Generar del cuadro de diálogo Propiedades del Proyecto escriba los
números de versión y el texto de información de la versión, y luego haga clic en
[A c e p t a r ] .
Además del archivo ejecutable, se debe de proporcionar diversas DLL's y otros
archivos a los usuarios. Se debería crear un programa de instalación que instale la
aplicación en la computadora del usuario. (Matta González, D. A.; 2003:73)
Página 196
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
VI.3.
CAPITULO VI
Página 197
La Ayuda (Help)
Como la mayoría de las aplicaciones de Microsoft, Visual Basic 6.0 dispone de un
Help excelente a través de una interfaz de usuario similar a la de Internet Explorer.
Desde un control, una propiedad o un formulario, o una palabra clave seleccionada
en la ventana de código, se puede utilizar la Ayuda pulsando la tecla [F 1 ]. Otra
manera es mediante las opciones del menú A y u d a .
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
En caso de requerir ayuda sobre un determinado tipo de control, se puede acceder
también a todos y cada uno de sus propiedades, eventos y métodos con las opciones
Propiedades, Métodos y Eventos, respectivamente.
VI.4.
Modularización
A medida que los programas se van desarrollando y aumentan de tamaño, se
convertirían rápidamente en sistemas poco manejables si no fuera por la
modularización (Tecuapacho Cosetl, I; 2006).
La modularización es un proceso que consiste en dividir un programa muy grande
en una serie de módulos mucho más pequeños y manejables.
A estos módulos se les suele denominar de distintas formas (subprogramas,
subrutinas, procedimientos, funciones, etc.) según los distintos lenguajes. Pero la
idea es siempre la misma: dividir un programa grande en un conjunto de
subprogramas o funciones más pequeñas que son llamadas por el programa
principal; éstas a su vez llaman a otras funciones más específicas y así
sucesivamente .
Entre otras, las principales ventajas que representa la división de un programa en
unidades más pequeñas o funciones son las siguientes:
1. Modularización. Cada función tiene una misión muy concreta, de modo que
nunca tiene un número de líneas excesivo y siempre se mantiene dentro de
un tamaño manejable. Puede ser desarrollada y comprobada por separado y
además, la misma función 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
función es utilizada muchas veces, el número total de líneas de código del
programa disminuye y también lo hace la probabilidad de introducir errores
en el programa.
3. Independencia de datos y ocultamiento de información. Una de las fuentes
más 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 modificación para añadir una funcionalidad
o corregir un error, se introduzcan nuevos errores en partes del programa
que antes funcionaban correctamente. Una función es capaz de mantener
una gran independencia con el resto del programa, manteniendo sus propios
datos y definiendo muy claramente la interfaz o comunicación con la función
que la ha llamado y con las funciones a las que llama, y no teniendo ninguna
posibilidad de acceso a la información que no le compete.
Página 198
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
VI.5.
CAPITULO VI
Página 199
Subrutinas
La técnica de modularización se usa mucho en programación. Suele llamarse a esta
técnica, diseño descendente, metodología del divide y vencerás o programación topdown . Según la técnica en lugar de resolver una tarea compleja y tediosa se
resuelven otras más sencillas y a partir de ellas se llega a la solución. Para ello las
subrutinas son ideales.
Subrutina, porción del código dentro de un programa más grande que
ejecuta una determinada tarea. Se encarga de resolver un problema
específico. Tienen un nombre para identificarlas y luego poder llamarlas
para ser utilizadas.
Pueden ser una porción de código identificada por una etiqueta, un
procedimiento o una función.
Tienen un principio y un fin y según el alcance pueden ser de tipo
privadas o públicas.
VI.5.i. Subrutinas mediante etiquetas
La sentencia GoTo permite saltar la ejecución de un programa hacia una línea
específica que, por medio de una etiqueta, agrupa varias sentencias (Birnios, B. y
Birnios, M.; 2003: 249).
Ejemplo de
sentencia
GOTO
Numero = 1
If Numero = 1 then
GoTo rutina1
Else
GoTo rutina2
End if
Rutina1:
Dia = “Lunes”
Return
Runtina2:
Dia = “Otro día”
Return
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 código desordenado, sin control. Su empleo se
justifica sólo para la captura y manejo de errores.
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
VI.6.
Mg. Ing. Fátima Martínez
Procedimientos y Funciones
En Visual Basic 6.0 se distingue entre funciones y procedimientos Sub. La
diferencia fundamental entre un procedimiento Sub y una función es que ésta
última retorna un valor al programa que la invoca, por lo tanto puede ser utilizada
en una expresión, no así los procedimientos que no devuelven ningún valor. El valor
de retorno ocupa el lugar de la llamada a la función donde esta aparece
Un procedimiento Sub es un segmento de código independiente del resto, que una
vez llamado por el programa, ejecuta un número determinado de instrucciones, sin
necesidad de devolver ningún valor al mismo (puede dar resultados modificando los
argumentos), mientras que una función siempre tendrá un valor de retorno.
Estos bloques básicos son llamados en forma genérica con la palabra procedimiento.
Resultan muy útiles para condensar las tareas repetitivas o compartidas, como
cálculos utilizados frecuentemente, manipulación de texto y controles, y operaciones
con bases de datos.
Un procedimiento es una especificación 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 González, D. A.; 2003: 63) trabaja con dos tipos de
procedimientos: los procedimientos de evento (explicitados en el capítulo anterior) y
los procedimientos generales.
En el siguiente ejemplo se muestra una subrutina creada automáticamente por
Visual Basic al programar en un formulario el evento Click:
Ejemplo de
Procedimiento
de Evento
Cuando en un formulario se inserta un botón de comando
llamado Command1 y desde la ventana de eventos se selecciona
el evento Click del mismo se crea la siguiente subrutina:
Private Sub Command1_Click()
…
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 módulo
donde está declarada o escrita.
También se pueden crear Procedimientos y Subrutinas propios para ejecutar una
determinada tarea.
Página 200
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 201
VI.6.i. Procedimientos Generales
Los procedimientos generales son procedimientos Sub o Function que son
creados para que lleven a cabo tareas específicas, estos deben ser invocados de
manera explícita.
Para crear un procedimiento general, se debe abrir la ventana de código y:
•
Ejecutar del menú Herramientas → Agregar procedimiento…
•
También, escribiendo el encabezado de procedimiento Sub o Function
seguido por el nombre del procedimiento, en una línea en blanco dentro
de la ventana de código y presionando [E N T E R ]
Un procedimiento muy simple que tiene la función específica
de borrar el contenido de 3 controles Label:
Private Sub ProcedimientoBorrar()
Ejemplo de
Procedimiento
General
label1 = ""
abel2 = ""
label3 = ""
End Sub
Una vez que se define un procedimiento general, se le debe llamar
específicamente desde la aplicación. 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 las
siguientes maneras:
Sub ProcedimientoBorrar()
Function ObtenerCoord()
Visual Basic responde completando la plantilla del nuevo procedimiento.
Nota: Si se tiene código duplicado en varios procedimientos de evento ,
conviene colocar el código en un procedimiento general y luego invocar a
éste desde los procedimientos de evento.
VI.6.ii. 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.
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
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 haríamos así:
Ejemplo de
llamar a un
Procedimiento
Private Sub Command1_Click()
ProcedimientoBorrar
End Sub
Al presionar el Command1, VB detecta el nombre ProcedimientoBorrar, y
automáticamente salta al lugar donde se ha creado el procedimiento y
ejecuta las líneas de código que encuentre en ese procedimiento.
Otra manera para llamar a un procedimiento es emplear la instrucción
Call con el nombre del procedimiento, quiere decir llamar, pero en este
caso si se utiliza Call y el procedimiento contiene parámetros (se verá más
adelante), éstos deberán ser pasados entre paréntesis.
Public Sub Seleccionar(Cuadro As TextBox)
Cuadro.SelStart = 0
Cuadro.SelLength = Len(Cuadro.Text)
End Sub
Ejemplo de
Si queremos llamar a éste procedimiento que seleccionará el
llamar a un
contenido de un TextBox al hacer click en el Command1, lo
Procedimiento
haríamos así:
con Call
Private Sub Command1_Click()
Call Seleccionar(objeto)
End Sub
Si se omite Call, se omiten también los paréntesis alrededor de la lista de
argumentos. En el ejemplo anterior sería: Seleccionar objeto
La principal ventaja de crear procedimientos de código es que evita
tener que escribir varias veces las mismas instrucciones en un
programa, el código se hace mucho mas funcional y entendible, se
pueden dividir un problema (una rutina), en varios procedimientos y
probarlos independientemente, y además la posibilidad de enviar
parámetros a los procedimientos.
Página 202
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
VI.6.iii.
CAPITULO VI
Página 203
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 estén dentro del
bloque del procedimiento, vuelve a la línea siguiente de donde fue llamado el
mismo, y ejecuta todas las líneas restantes de código. En el ejemplo anterior no
ejecutaría nada más por que no hay ninguna otra instrucción debajo de
Seleccionar.
Muchas veces resulta necesario salir antes de un procedimiento, por ejemplo al
cumplirse una condición. 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
VI.6.iv.
Sub Dividir (Operador As Integer,
Integer)
Dim Resultado As Integer
If Operador2 <= 0 then
Exit Sub
End if
Resultado = Operador1/Operador2
End Sub
Operador2
As
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 continuación, devuelve el control
al código de llamada. Cuando devuelve el control, también devuelve un valor al
código de llamada.
Cada vez que se llama a un procedimiento, se ejecutan las instrucciones de éste,
desde la primera instrucción ejecutable tras la instrucción Function hasta la
primera instrucción End Function, Exit Function o Return que se encuentre.
Un procedimiento Function puede aceptar argumentos, como constantes,
variables o expresiones, que le pasa el código de llamada.
La sintaxis correspondiente a una función es la siguiente:
[Static] [Private] Function nombre ([parámetros]) [As tipo]
[sentencias]
[nombre = expresion]
[Exit Function]
[sentencias]
[nombre = expresion]
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
End Function
Donde:
•
•
nombre es el nombre de la función.
Para especificar el tipo se utiliza la cláusula As Tipo (Integer, Long,
Single, Double, Currency, String o Variant). Será de un tipo u otro
dependiendo del dato que devuelva.
•
Parámetros: son los argumentos que son pasados cuando se llama a la
función. Visual Basic asigna el valor de cada argumento en la llamada al
parámetro que ocupa su misma posición. 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á más adelante).
•
El nombre de la función, su valor de retorno, actúa como una variable
dentro del cuerpo de la función. El valor de la variable expresión es
almacenado en el propio nombre de la función. Si no se efectúa esta
asignación, el resultado devuelto será 0 si la función es numérica, nulo
("") si la función es de caracteres, o Empty si la función es Variant.
•
Exit Function permite salir de una función antes de que ésta finalice y
devolver así el control del programa a la sentencia inmediatamente a
continuación de la que efectuó la llamada a la función.
•
End Function marca el final del código de la función, al igual que la Exit
Function, devuelve el control del programa a la sentencia siguiente a la
que efectuó la llamada, pero lógicamente una vez finalizada la función.
En este ejemplo, el procedimiento Function del tipo Integer recibe un
número y devuelve ese número al cuadrado.
Ejemplo
de
Function
Public Function Cuadrado(N As Integer) As Integer
Cuadrado = N * N
End Function
Al final de la declaración de la función Cuadrado y después de la lista de los
parámetros dice As Integer, esto es por que las funciones retornan o devuelven
un valor. En este caso la función 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 números,
cadenas, fechas, arreglos, vectores.
Página 204
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
VI.6.iv.1.
CAPITULO VI
Página 205
Valores devueltos
El valor que un procedimiento Function devuelve al código de llamada se
denomina valor devuelto. El procedimiento devuelve dicho valor de dos
maneras:
1. La función asigna un valor a su propio nombre de función en una o
más instrucciones del procedimiento. El control no vuelve al
programa de llamada hasta que se ejecuta una instrucción Exit
Function o End Function. Esto se ilustra en el siguiente ejemplo:
La siguiente función acepta un cadena de caracteres y un entero y
devuelve una cadena de caracteres:
Ejemplo
de valor
devuelto
Function QuéComer (DíaSemana As String, Hora As
Integer) As String
'Devuelve el menú del almuerzo basándose en el día
y la hora.
If DíaSemana = "Viernes" then
QuéComer = "Pescado"
Else
QuéComer = "Pollo"
End If
If Hora > 4 Then QuéComer = "Demasiado tarde"
End Function
2. Utiliza la instrucción 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
Function QuéComer (DíaSemana As String, Hora As
Integer) As String
'Devuelve el menú del almuerzo basándose en el día
y la hora.
If DíaSemana = "Viernes" then
Return "Pescado"
Else
Return "Pollo"
End If
If Hora > 4 Then Return "Demasiado tarde"
End Function
La ventaja de asignar el valor devuelto al nombre de la función es que el
control permanece en el procedimiento hasta que encuentra una
instrucción Exit Function o End Function, lo que permite asignar un
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
valor previo y si es necesario, ajustarlo después.
VI.6.v. Llamar a procedimientos Function
La llamada a una función se hace de diversas formas. Normalmente se llama a
un procedimiento Function utilizando su nombre en una expresión de la misma
forma en que se llama a una función intrínseca de Visual Basic.
variable = nombre([argumentos])
Donde:
•
argumentos son un lista de constantes, variables o expresiones separadas
por comas que se pasan a la función. En principio, el número de
argumentos debe ser igual al número de parámetros de la función. Los
tipos de los argumentos deben coincidir con los tipos de sus
correspondientes parámetros, de lo contrario puede haber fallos
importantes en la ejecución del programa. Esta regla no rige si los
argumentos se pasan por valor (concepto que se verá más adelante).
En cada llamada a una función hay que incluir los paréntesis, aunque ésta no
tenga argumentos.
El siguiente ejemplo corresponde a una función que devuelve como
resultado la raíz cuadrada de un número N:
Function Raiz (N As Double) As Double
If N < 0 Then
Exit Function
Else
Raiz = Sqr(N)
End Function
Ejemplos:
Llamar una
Función
La llamada a esta función se hace de la forma siguiente:
Cuadrada = Raiz(Num)
Las instrucciones siguientes llaman a la función Raiz:
Print 10 * Raiz(numero)
X = Raiz(numero)
If Raiz(numero) <= 1 Then Debug.Print "Fuera del
intervalo"
X = OtraFunción(10 * Raiz(A))
También es posible llamar a una función igual que se llama a un procedimiento
Sub.
Las instrucciones siguientes llaman a la función Cuadrado (ejemplo):
Página 206
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
Ejemplos:
Llamar una
Función
•
CAPITULO VI
Página 207
Si se desea guardar el valor devuelto, se usan paréntesis cuando
se invoque a la función:
Call Cuadrado(5) o Resultado = Cuadrado (5)
Si se omiten los paréntesis, se puede ignorar el valor devuelto y
no guardarlo en una variable. Esto puede ser útil si se quiere
ejecutar una función y no se desea el valor devuelto. Por ejemplo:
Cuadrado 5
A diferencia de C y C++ en Visual Basic 6.0 no es necesario devolver
explícitamente el valor de retorno, pues el nombre de la función ya
contiene el valor que se desea devolver. Tampoco es necesario
declarar las funciones antes de llamarlas.
Al finalizar cada función, se devuelve el control del programa a la
sentencia posterior a la que la invocó.
VI.6.v.1.
Función o Procedimiento recursivo
Se dice que una función o que un procedimiento Sub es recursivo es si se
llaman a sí mismo.
La siguiente función calcula el factorial de un número programada de
forma recursiva:
Ejemplo: de
una
Función
recursiva
Function Factorial (N As Integer) As Long
If N = 0 Then
Factorial = 1
'Condición de final
Else
Factorial = N * Factorial (N - 1)
End If
End Function
Si la variable N que se le pasa a la función 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 función se
llama a ella misma, pero variando el argumento a (N-1), hasta llegar al
punto en el que N -1 =0, finalizándose el proceso.
VI.7.
Argumentos y parámetros
En cualquier programa siempre es necesario hacer cálculos, usar información,
procesarla y mostrarla. En la mayoría de los casos, se necesita un lugar temporal en
el cual guardar parte o toda esa información. Los lenguajes de programación
permiten guardar datos en la memoria, para más tarde usarlos (tomarlos,
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
modificarlos y volverlos a guardar). Esas posiciones o lugares de la memoria donde
los programas pueden almacenar información son las variables.
En la mayoría de los casos, un procedimiento necesita cierta información 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 información al
procedimiento, el procedimiento define un parámetro, y el código de llamada
transfiere un argumento a dicho parámetro.
Un parámetro representa un valor que el procedimiento espera que se
transfiera cuando es llamado. La declaración del procedimiento define
sus parámetros.
Los parámetros se utilizan en los procedimientos para que el procedimiento no
ejecute siempre las mismas líneas de código y pueda variar, teniendo la posibilidad
de hacerlo más dinámicamente.
Cuando se define un procedimiento Function o Sub, se especifica una lista de
parámetros entre paréntesis que va inmediatamente después del nombre de
procedimiento. Para cada parámetro, se especifica un nombre, un tipo de datos y un
mecanismo para pasar argumentos (ByVal o ByRef). También se puede indicar que
un parámetro es opcional, lo que significa que el código de llamada no tiene que
transferirle un valor.
El nombre de cada parámetro actúa como una variable local dentro del
procedimiento. Esto significa que su período de duración es igual al del
procedimiento y su ámbito es el procedimiento completo.
El nombre del parámetro 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 parámetro del procedimiento. El código de llamada
proporciona los argumentos cuando llama al procedimiento.
Cuando se llama al procedimiento Function o Sub, se incluye una lista de
argumentos entre paréntesis que van inmediatamente después del nombre del
procedimiento. Cada argumento se corresponde con el parámetro situado en la
misma posición de la lista.
A diferencia de la definición de parámetros, los argumentos no tienen nombres.
Cada argumento es una expresión que puede contener cero o más
variables, constantes y literales. El tipo de datos de la expresión
evaluada normalmente debe coincidir con el tipo de datos definido para
Página 208
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 209
el parámetro correspondiente, y en algún caso, debe poder convertirse
al tipo del parámetro.
VI.7.i. Definir un parámetro para un procedimiento
Los parámetros de un procedimiento se declaran igual que las variables,
especificando el nombre y el tipo de datos. Los parámetros 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 número hasta una
cadena de caracteres. Sin embargo, puede declarar otros tipos de datos para los
parámetros.
También puede especificarse el mecanismo para pasar argumentos y si se trata
de un parámetro opcional.
Para definir un parámetro de procedimiento:
1. En la declaración del procedimiento , se agrega el nombre de parámetro a la lista
de parámetros del procedimiento, separándolo de otros parámetros mediante comas.
2. Se inserta una cláusula As después del nombre de parámetro para especificar el tipo
de datos .
3. Normalmente los parámetros se transfieren por valor , a menos que se desee que el
procedimiento pueda cambiar su valor en el código de llamada. Para ello se antepone
ByVal o ByRef al nombre del parámetro para especificar el mecanismo para pasar
argumentos (por valor o referencia).
4. Si el parámetro es opcional se antepone Optional al mecanismo para pasar
argumentos y detrás del tipo de datos del parámetro, se incluye un signo igual (=) y
un valor predeterminado.
En el ejemplo siguiente se define el esquema de un procedimiento Sub con tres
parámetros.
Las declaraciones de parámetros están separadas, en la lista de
parámetros, mediante comas. El primer parámetro es un dato de tipo
String, el segundo un número entero y el tercero también un String.
Ejemplo:
parámetros
Private Sub DatosPersonales(nombre As String, edad
As Integer, ciudad As String)
Label1 = nombre
Label2 = edad
Label3 = ciudad
End Sub
Ahora en el evento Click de un Command1 se llama al procedimiento
pasando los argumentos. El primer dato, como también el último, es
un string por ende debe ir entre comillas.
Private Sub Command1_Click()
DatosPersonales “Luciano”, 25, “La Plata”
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
End Sub
Al presionar el botón de comando se llamará al procedimiento DatosPersonales
que se había creado anteriormente y le pasará los valores de los argumentos en
el orden en que estén declarados los parámetros en el procedimiento. Esto quiere
decir que el primer parámetro 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.
Después 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 parámetros en un
procedimiento, por que por ejemplo en el caso anterior si hubiésemos pasado los
parámetros de esta forma:
DatosPersonales 25, “Luciano”, “La Plata”
El segundo parámetro "Luciano" se almacenaría en la variable edad que es de
tipo Integer y se produciría un error en tiempo de ejecución por no coincidir los
tipos de datos, ya que la variable espera un valor numérico de tipo Integer 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
parámetros, cuando se lo llama, no se puede enviar 1 parámetro o 2.
Obligatoriamente hay que pasarle los 3 parámetros que se ha declarado en el
mismo. Un ejemplo que daría un error en tiempo de ejecución por no pasar
adecuadamente los parámetros sería:
DatosPersonales
“Luciano”, 25
Esto daría un error de compilación por que el
procedimiento espera recibir 3 parámetros y le
estamos pasando o enviando 2 de ellos.
El mensaje de error que muestra VB sería el
siguiente:
Hay una sentencia llamada Optional que sí permite pasar parámetros de
forma opcional.
La sintaxis de los parámetros de una lista de parámetros es la siguiente:
[Optional] [ByVal | ByRef] nombreparametro As tipo_dato
Página 210
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 211
Si el parámetro es opcional, debe proporcionar también un valor predeterminado
como parte de su declaración. La sintaxis para especificar un valor
predeterminado es la siguiente:
Optional [ByVal | ByRef] nombreparametro As tipo_dato = valor
Ejemplo de
Optional
Private Sub Con_Parametro_Opcional(Nombre As_
String, Optional Email As String)
MsgBox Nombre
MsgBox Nombre
End Function
Si se llama a la subrutina anterior y se omite el parámetro Email, no dará error,
por ejemplo: Call Con_Parametro_Opcional("Maria")
Los parámetros opcionales, si o si deben estar declarados al final de la
lista de parámetros.
Por ejemplo esto no se puede declarar:
Private sub una_Rutina ( Optional Email As String, Nombre as String )
VI.7.ii. Pasar argumentos a un procedimiento
Al llamar a un procedimiento, se agrega detrás del nombre de procedimiento
una lista de argumentos entre paréntesis. Se proporciona un argumento
correspondiente a cada parámetro necesario que el procedimiento define y
opcionalmente, se pueden proporcionar argumentos para los parámetros
Optional. Cuando no se proporciona un parámetro Optio nal en la llamada, se
debe incluir una coma para marcar su lugar en la lista de argumentos si se
indica algún argumento posterior.
Para pasar uno o varios argumentos a un procedimiento:
1. En la instrucción de llamada, se agrega paréntesis detrás del nombre de
procedimiento.
2. Se coloca una lista de argumentos entre los paréntesis. Hay que incluir un
argumento para cada parámetro necesario que el procedimiento define ; se separan
los argumentos por comas. Cada argumento debe ser una expresión válida que
evalúa el tipo de datos convertible al tipo que el procedimiento define para el
parámetro correspondiente.
3. Si un parámetro 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 parámetro.
4. Si omite un argumento para un parámetro Optional y hay otro parámetro después
de él en la lista de parámetros, se puede marcar el lugar del argumento omitido
mediante una coma adicional en la lista de argumentos.
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
VI.8.
Mg. Ing. Fátima Martínez
Pasar por valor o por referencia
Los valores que se envían como argumento a los procedimientos se pueden pasar
por valor o por referencia.
•
Por valor: se envía una copia de la variable, por lo tanto cualquier
cambio realizado en el procedimiento no afecta a la variable original.
Sólo tendrá efecto dentro del procedimiento o función. Una vez que
termine y finalice el mismo, la variable original pasará a valer el dato
que tenía, no se modifica.
•
Por referencia: se envía un puntero a la variable original y cualquier
cambio dentro de la rutina afecta la variable original. El cambio
seguirá manteniéndose una vez que finalice la ejecución del
procedimiento o función.
Cuando interesa modificar el valor de un parámetro, por ejemplo para asignarle un
nuevo valor, se puede usar los parámetros por referencia. En Visual Basic se
indican con la instrucción ByRef. En cambio para indicarle que el parámetro es por
valor se usa la instrucción ByVal.
Cuando no se indica a un parámetro de una función 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.
Indica 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 código que realiza la llamada.
Por ejemplo:
Sub Mostrar (ByVal Altura as Integer, Ancho as Integer)
En este ejemplo sólo 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.
Private Sub Command1_Click ()
Dim Un_valor As Long
Un_valor = 100
Ejemplo de
ByVal
pasaje por
Valor
'Se le envía la variable por Valor (ByVal)
Call Sumar(Un_valor)
'Muestra el valor 100, no se modificó en la función
Sumar
MsgBox Un_valor
Página 212
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 213
End Function
Sub Sumar(ByVal Valor As Long)
'Modifica la variable
Valor = Valor + 100
End Sub
En el ejemplo anterior hay una Sub llamada Sumar que recibe como parámetro
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 línea 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 envía una copia de la variable
original y cualquier cambio que se produzca, será solo en el ámbito del
procedimiento o función.
VI.8.ii. Pasar argumentos por referencia: ByRef
Pasar argumentos por referencia le da al procedimiento acceso al contenido real
de la variable en su ubicación de dirección de memoria. Se puede utilizar la
palabra clave ByRef para especificar que se pasa por referencia,
Indica 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
código 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 Mostrar (ByRef Altura as Integer, Ancho as Integer)
En el ejemplo los dos parámetros se pasan por referencia, salvo que en el
primero se explicita con ByRef.
Private Sub Command1_Click ()
Dim Un_valor As Long
Un_valor = 100
Ejemplo de
ByRef
pasaje por
Referencia
'Se le envía la variable por Referencia (ByRef)
Call Sumar(Un_valor)
'Muestra el valor 200, se modificó en la función
Sumar
MsgBox Un_valor
End Function
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
Sub Sumar(ByRef Valor As Long)
'Modifica la variable
Valor = Valor + 100
End Sub
VI.9.
Ejercicios Resueltos
1. Ejercicio
Calcula el nuevo
precio agregando el
IVA
El código 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 función
MsgBox "El precio con IVA es " & Str(nuevo_prec), , "Calcula Precio"
End Sub
El código de la función 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
Función que redondea
un número cantidad de
decimales ingresado.
Página 214
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 215
El código de la Función 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, ".")
'posición 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 número
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 función
Else
RedondearNumero = Val(Valor)
'devuelve en el nombre de la función
End If
End Function
El código 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 función
Else
MsgBox "El número debe ser positivo", vbInformation
txtRed.SetFocus
End If
End Sub
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
3. Ejercicio
Suma dos matrices
que son cargadas en
tiempo de ejecución
con números
generados al azar.
Cada matriz está
formada por un
arreglo de TextBox.
El código de la Función Aleatorio
Function Aleatorio() As Integer
Aleatorio = Int(Rnd * 100) + 1
End Function
El código 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 código 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 función 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())
Next i
End Sub
Private Sub Form_Load()
Dim i As Integer
Randomize
For i = 0 To txtA.Count - 1
Página 216
'llama a la función Aleatorio
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 217
txtA(i) = "0"
txtB(i) = "0"
Next i
End Sub
El código 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.
Módulos en Formularios
El código en Visual Basic se almacena en módulos, son porciones de código que
generalmente almacenan declaraciones, procedimientos y funciones.
Las aplicaciones sencillas1 pueden consistir en un único formulario y todo el código
de la aplicación reside en ese módulo de formulario. A medida que las aplicaciones
van creciendo se agregará formularios adicionales. Si el código es común a varios
formularios y no se desea duplicar el código en ambos formularios, se crea un
módulo independiente que contenga un procedimiento que ejecuta ese código común.
Este módulo independiente debe ser un módulo estándar.
Un sistema es modular cuando fue construido y dividido en varios
módulos.
La gran ventaja de trabajar con módulos es que se puede construir una biblioteca
que contenga los procedimientos compartidos y funciones definidas por el usuario y
trasladarlas hacia otros proyectos con sólo copiar el archivo.
Los tres tipos de módulos:
•
formulario son la base de la mayoría de las aplicaciones de Visual Basic
(extensión .frm);
Ä
•
1
Si se declara el procedimiento en un módulo de formulario, puede
ser llamado con el siguiente código: Form1.MiProc
estándar son contenedores de los procedimientos y declaraciones a los que
tienen acceso otros módulos de la aplicación. Pueden contener
declaraciones globales (disponibles para toda la aplicación) o a nivel de
módulo de variables, constantes, tipos, procedimientos externos y
procedimientos globales (extensión .bas);
Vea en la Ayuda de Visual Basic: “Módulo de código”.
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
•
Mg. Ing. Fátima Martínez
Ä
Si se declara el procedimiento en un módulo estándar, puede ser
llamado con el siguiente código: MiProc
Ä
Si se declara un procedimiento con el mismo nombre en dos módulos
estándar, se debe especificar el nombre del módulo como se muestra
en el siguiente código: Module1.MiProc
clase son la base de la programación orientada a objetos en Visual Basic.
Se puede escribir código en módulos de clase para crear nuevos objetos.
Estos objetos nuevos pueden incluir propiedades y métodos
personalizados (extensión de nombre de archivo .cls).
VI.11.
Agregar un módulo a un proyecto
Para agregar un módulo de código al proyecto, se ejecuta del menú Proyecto →
Agregar módulo. Aparece el
siguiente cuadro de diálogo:
Para incorporar un
módulo ya existente.
Para crear un
nuevo módulo.
VI.11.i.
Iniciar un programa
Por defecto, Visual Basic asume que los programas inician su ejecución desde el
primer formulario creado. Sin embargo a veces es posible iniciar el proyecto
desde otros formularios o módulos.
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.
Página 218
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 219
Se selecciona el
nombre del
formulario inicial.
VI.12.
Alcance del Código
Los Procedimientos pueden ser declarados como Private (privados) o Public
(públicos).
•
Los declarados como Private pueden ser llamados o invocados sólo por
otros procedimientos localizados en ese formulario, módulo o clase.
•
Los declarados como Public en un formulario: pueden ser llamado desde
cualquier lugar de la aplicación especificando los nombres del formulario
y del procedimiento.
•
Los declarados como Public en un módulo: están disponibles para toda la
aplicación, y pueden ser llamados especificando el nombre del
procedimiento.
De forma predeterminada, los procedimientos Sub son Public en todos los
módulos, lo que significa que se les puede llamar desde cualquier parte de la
aplicación.
El siguiente código declara un procedimiento Public:
Public Sub MiProc()
End Sub
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
4. Ejercicio
Calcula la División Entera Mediante
barras de desplazamiento horizontal
se determinan el dividendo y el
divisor.
El código 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 código del Procedimiento Divide en el Módulo
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 aplicación en la cual resuelvas el siguiente
sistema de ecuaciones:
a1 X + b1 Y = c1
a2 X + b2 Y = c2
a) Representa en el formulario las rectas correspondientes
a cada ecuación.
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 solución real presenta un mensaje.
Página 220
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO VI
Página 221
Ejercicio 2:
Crea una aplicación 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 triángulo.
e) Determinar si el triángulo es equilátero, isósceles 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 Módulo estándar.
Mg. Ing. Fátima Martínez
CAPITULO VI: FUNDAMENTOS DE PROGRAMACIÓN
Mg. Ing. Fátima Martínez
BIBLIOGRAFÍA CONSULTADA Y RECURSOS EN LA WEB
Nombre
Programación
modular
Visual Basic 6.
Programación
Orientada a Objetos
Funciones y
procedimientos
Fundamentos de
Programación en
Visual Basic
Autor/Año
http://teleformacion.edu.aytolacoruna.es/PASC
AL/document/modular.htm;(accedido
10/08/2007).
http://www.lawebdelprogramador.com/cursos/en
Rodríguez Bucarelly,
lace.php?idp=2175&id=93&texto=visual+basic
C. M.; 2004
(accedido 10/03/2007); p. 24
Tecuapacho Cosetl, I; http://www.wikilearning.com/curso_gratis/basic
2006
_facil- funciones_y_procedimientos/9513-8
Matta González, D.
A.; 2003
Aprenda Visual Basic
García de Jalón, J. y
6.0 como si estuviera en
otros; 1999
Primero
Lenguaje de
Wikipedia
programación
Diferencias entre
parámetros y
argumentos
Microsoft Visual Basic
Birnios, B. y Birnios,
6.0. Manual de
M.; 2003
Referencia
Página 222
Edición, Editorial / Dirección del Sitio
http://www.cs.us.es/cursos/ai-2003/VB/VB.pdf;
(accedido 20/09/2007); p. 73
http://www.tecnun.es/asignaturas/Informat1/ayudainf
/aprendainf/VisualBasic6/vbasic60.pdf; (accedido
10/03/2007); p. 24
http://es.wikipedia.org/wiki/Lenguaje_de_progra
maci%C3%B3n; (accedido 20/07/2008)
http://msdn.microsoft.com/eses/library/9kewt1b3(VS.80).aspx; (accedido
27/10/2008)
Manuales USERS; MP Ediciones; Buenos
Aires; Argentina; p. 249.
Descargar