Las aplicaciones informáticas que habitualmente se utilizan, incluso a nivel de informática personal, suelen contener decenas y aún cientos de miles de líneas de código fuente. 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, que es el proceso consistente 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. Sea cual sea la nomenclatura, la idea es sin embargo 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.
La división de un programa en unidades más pequeñas o funciones presenta –entre otras– las ventajas 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. Además, una misma función (por ejemplo, un producto de matrices, una resolución de un sistema de ecuaciones lineales, ...) puede ser llamada muchas veces en un mismo programa, e incluso puede ser reutilizada por otros programas. Cada función puede ser desarrollada y comprobada por separado.
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 de computador son los efectos colaterales o perturbaciones 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.
3.8.2 Funciones y procedimientos Sub en Visual Basic 6.0
En Visual Basic 6.0 se distingue entre funciones y procedimientos Sub. En ocasiones se utiliza la palabra genérica procedimiento para ambos. La fundamental diferencia entre un procedimiento Sub y una función es que ésta última puede ser utilizada en una expresión porque tiene un valor de retorno. El valor de retorno ocupa el lugar de la llamada a la función donde esta aparece. Por ejemplo, si en una expresión aparece sin(x) se calcula el seno de la variable x y el resultado es el valor de retorno que sustituye a sin(x) en la expresión en la que aparecía. Por tanto, las funciones devuelven valores, a diferencia de los procedimientos que no devuelven ningún valor, y por tanto no pueden ser utilizadas en expresiones. 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
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 38
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.
Los nombres de los procedimientos tienen reglas de visibilidad parecidas a las de las variables. Para llamar desde un formulario a un procedimiento Public definido en otro formulario es necesario preceder su nombre por el del formulario en que está definido. Sin embargo, si se desea llamar a un procedimiento definido en un módulo estándar (*.bas) no es necesario precederlo del nombre del módulo más que si hay coincidencia de nombre con otro procedimiento de otro módulo estándar.
3.8.3 Funciones (function)
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]
End Function
donde nombre es el nombre de la función. Será de un tipo u otro dependiendo del dato que devuelva. Para especificar el tipo se utiliza la cláusula As Tipo (Integer, Long, Single, Double, Currency, String o Variant). 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. Como se verá en un apartado posterior, los argumentos pueden ser pasados por referencia o por valor.
El nombre de la función, que es el valor de retorno, actúa como una variable dentro del cuerpo de la función. El valor de la variable expresion 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.
La sentencia End Function marca el final del código de la función y, 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.
La llamada a una función se hace de diversas formas. Por ejemplo, una de las más usuales es la siguiente:
variable = nombre([argumentos])
donde argumentos son un lista de constantes, variables o expresiones separadas por comas que son pasadas 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.
Capítulo 3: Lenguaje BASIC página 39
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
La llamada a esta función se hace de la forma siguiente:
Cuadrada = Raiz(Num)
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.
3.8.4 Procedimientos Sub
La sintaxis que define un procedimiento Sub es la siguiente:
[Static] [Private] Sub nombre [(parámetros)] [sentencias]
[Exit Sub] [sentencias]
End Sub
La explicación es análoga a la dada para funciones.
La llamada a un procedimiento Sub puede ser de alguna de las dos formas siguientes:
Call nombre[(argumentos)]
o bien, sin pasar los argumentos entre paréntesis, sino poniéndolos a continuación del nombre simplemente separados por comas:
nombre [argumentos]
A diferencia de una función, un procedimiento Sub no puede ser utilizado en una expresión pues no devuelve ningún valor. Por supuesto una función puede ser llamada al modo de un procedimiento Sub, pero en esta caso no se hace nada con el valor devuelto por la función.
El siguiente ejemplo corresponde a un procedimiento Sub que devuelve una variable F que es la raíz cuadrada de un número N.
Sub Raiz (N As Double, F As Double) If N < 0 Then
Exit Sub 'Se mandaría un mensaje de error
Else
F = Sqr(N)
End If
End Sub
La llamada a este procedimiento Sub puede ser de cualquiera de las dos formas siguientes:
Raiz N, F
Call Raiz(N, F)
En el ejemplo anterior, el resultado obtenido al extraer la raíz cuadrada al número N se devuelve en la variable F pasada como argumento, debido a que como se ha mencionado anteriormente, un procedimiento Sub no puede ser utilizado en una expresión.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 40
3.8.9 Utilización de argumentos con nombre
Visual Basic 6.0 ofrece tambieén la posibilidad de llamar a las funciones y procedimientos Sub de una forma más libre y menos formal, pasando los argumentos en la llamada al procedimiento con un orden arbitrario. Esto se consigue incluyendo el nombre de los argumentos en la llamada y asignándoles un valor por medio de una construcción del tipo miArgumento:=unValor. Unos argumentos se separan de otros por medio de comas (,). Considérese el siguiente ejemplo:
Public Sub EnviarCarta(direccion As String, destinatario As String)
sentencias
End Sub
que se puede llamar en la forma:
EnviarCarta destinatario:="Mike Tyson", direccion:="Las Vegas"
No todas las funciones que se pueden llamar en Visual Basic 6.0 admiten argumentos con nombre. Con AutoQuickInfo puede obtenerse más información al respecto.
3.9 ARRAYS
Un array permite referirse a una serie de elementos del mismo tipo con un mismo nombre, y hace referencia un único elemento de la serie utilizando uno o más índices, como un vector o una matriz en Álgebra.
Visual Basic 6.0 permite definir arrays de variables de una o más dimensiones (hasta 60) y de cualquier tipo de datos (tipos fundamentales y definidos por el usuario). Pero además Visual Basic introduce una nueva clase de arrays, los arrays de controles (esto es, arrays de botones, de etiquetas, de paneles, etc.) que permiten una programación más breve y clara. En este apartado sólo se tratarán los arrays de variables.
Todos los elementos de un array deben ser del mismo tipo y están almacenados de forma contigua en la memoria. Por supuesto, si el array es de tipo Variant cada elemento puede contener un dato de tipo diferente, e incluso puede contener otro array.
Entre los arrays de variables cabe distinguir dos tipos fundamentales, dependiendo de que número de elementos sea constante o pueda variar durante la ejecución del programa.
1. Arrays estáticos, cuya dimensión es siempre la misma.
2. Arrays dinámicos, cuya dimensión se puede modificar durante la ejecución del programa.
3.9.1 Arrays estáticos
La declaración de un array estático dependerá de su ámbito.
La declaración de un array público se hace en la sección de declaraciones de un módulo utilizando la sentencia Public.
La declaración de un array a nivel del módulo o del formulario se hace en la sección de declaraciones del módulo o del formulario utilizando la sentencia Dim o Private.
Para declarar un array local a un procedimiento, se utiliza la sentencia Dim, Private o Static
dentro del propio procedimiento.
A continuación se presentan algunos ejemplos:
Dim vector(19) As Double
Este ejemplo declara un array de una dimensión, llamado vector, con veinte elementos, vector(0), vector(1), ... , vector(19), cada uno de los cuales permite almacenar un Double. Salvo que se indique otra cosa, los índices se empiezan a contar en cero.
Dim matriz(3, 1 To 6) As Integer
Este ejemplo declara un array de dos dimensiones, llamado matriz, con 4x6 elementos,
matriz(0,1), ... matriz(3,6), de tipo entero.
Public cadena(1 To 12) As String
El ejemplo anterior declara un array de una dimensión, cadena, con doce elementos,
caract(1), ... , caract(12), cada uno de los cuáles permite almacenar una cadena de caracteres.
La declaración de los arrays estáticos es bastante cómoda. Se declaran una vez. Sin embargo tienen el inconveniente que en la mayoría de los casos están sobredimensionados y utilizan más memoria de la que realmente necesitan. Esto implica que se está malgastando memoria. Para solucionar este problema se utilizan los arrays dinámicos.
3.9.2 Arrays dinámicos
El espacio necesario para un array estático se asigna al iniciarse el programa y permanece fijo durante su ejecución. El espacio para un array dinámico se asigna durante la ejecución del
programa. Un array dinámico, puede ser redimensionado en cualquier momento de la ejecución. La forma mejor de redimensionar los arrays es mediante variables que contienen los valores adecuados.
Para crear un array dinámico primero hay que declararlo como si fuera una array estático, pero sin darle dimensión. Es decir, se deja la lista -entre paréntesis- vacía sin ponerle ningún número. Esto se hace con la sentencia Public si se quiere que sea global, con Dim o Private si se quiere a nivel de módulo o con Static, Dim o Private si se quiere que sea local.
Para asignar el número actual de elementos del array se utiliza la sentencia ReDim. La sentencia ReDim puede aparecer solamente en un procedimiento y permite cambiar el número de elementos del array y sus límites inferior y superior, pero no el número de dimensiones. Esto quiere decir que, por ejemplo, no se puede trasformar un vector en una matriz.
A continuación se presenta un ejemplo de cómo se declaran arrays dinámicos en Visual Basic. Si se declara el array Matriz a nivel del formulario,
Dim Matriz( ) As Integer
y más tarde, un procedimiento Calculo puede asignar espacio para el array, como se indica a continuación:
Sub Calculo( )
...
ReDim Matriz(F, C)
Cada vez que se ejecuta la sentencia ReDim, todos los valores almacenados en el array se pierden (si son Variant se ponen a Empty; si son numéricos a cero y si son cadenas de caracteres a la cadena vacía). Cuando interese cambiar el tamaño del array conservando los valores del array, hay que ejecutar ReDim con la palabra clave Preserve. Por ejemplo, supóngase un array A de dos dimensiones. La sentencia,
ReDim Preserve A(D1, UBound(A, 2) + 2)
incrementa el tamaño del array en dos columnas más. Cuando se utiliza la palabra Preserve no puede cambiarse el índice inferior del array (sí el superior). La función UBound utilizada en este ejemplo es una función que devuelve el valor más alto de la segunda dimensión de la matriz (ver el Help para más información).
Realiza las siguientes preguntas en tu apunte:
- Que ventajas tiene la división de programas en unidades pequeñas o funciones
- Que diferencia hay entre procedimiento y función
- Explica que entendiste con lod e reglas de visibilidad de procedimeintos
- Que debes hacer para declarar o definir una función
- explica la primera forma de llamar a una función
- Explica la segunda manera de llamara a una funcion
- Que debes hacer para definir un procedimiento
- Explica la primer forma de llamar a un procedimeinto
- Explica la segunda forma de llamar a un procedimiento
- Que diferencia hay entre un array estatico y uno dinamico
- Como declararías un arraglo local estatico
Multimedia 08
multimedia 09
aplicacion visual
basic 10
aplicación visual
basic 11
ACTIVIDAD DE APRENDIZAJE (ejercicio 14)
Elabora una aplicación en Visual Basic donde apliques la programación de los objetos multimedia y el uso de formularios múltiples. Recuerda realizar el reporte con las características solicitadas.
ACTIVIDAD DE EVALUACION
Para evaluar el tercer indicador de la rubrica 2.1 elabora la siguiente practica:
Practica
9 SE ALMACENARA EN EL PORTAFOLIO ELECTRÓNICO CARPETA 2.1
Unidad
de Aprendizaje:
|
Programación de aplicaciones para el aprovechamiento de la información de
las bases de datos
|
Número:
|
2
|
Práctica:
|
Manejo de Estructuras de Control
|
Numero:
|
9
|
Propósito de la práctica
|
Maneja Elementos multimedia en el
desarrollo de aplicaciones para demostrar la interactividad de los eventos.
|
Escenario:
|
Laboratorio
de informática.
|
Duración
|
1 hora
|
1.
Ahora
diseña en tu libreta la interface de una aplicación
·
APLICACIÓN
CON 3 O MAS FORMULARIOS QUE MUESTRE EL ARBOL GENEALOGICO DE TU FAMILIA
·
APLICACIÓN
CON 3 O MAS FORMULARIOS QUE MUESTRE LOS MEJORES AMIGOS DE LA ESCUELA
·
APLICACIÓN
CON 3 O MAS FORMULARIOS QUE MUESTRE LA EVOLUCION DE NIÑO A ESTA EDAD TUYA
·
APLICACIÓN
CON 3 O MAS FORMULARIOS QUE MUESTRE ALGUN TUTORIAL QUE APRENDER Y QUE NO SEA EL
SISTEMA SOLAR
·
APLICACIÓN
CON 3 O MAS FORMULARIOS QUE MUESTRE LOS LUGARES IMPORTANTES DE LA REGION DONDE
VIVES
·
APLICACIÓN
CON 3 O MAS FORMULARIOS QUE MUESTRE LOS ARTISTAS Y SUS CANCIONES QUE LO HAN
HECHO FAMOSO
·
Alguna
otra aplicación con 3 o mas formularios
2.
ABRE
UNA CARPETA EN TU ESCRITORIO CON EL NOMBRE DE PRACTICA9 Y AHÍ AGREGA CARPETAS CON
IMÁGENES, SONIDOS Y VIDEOS QUE NECESITAS PARA QUE DESARROLLES EN LA ESCUELA LA
APLICACIÓN COMO PRACTICA Crea un reporte en Word donde agregues
o
Lo
que escribiste en el paso 1 en tu libreta
o
el
pantallazo de la aplicación creada
o
El
código creado
o
El
nombre de los objetos y las propiedades modificadas
o
Guarda
el reporte dentro de la carpeta practica 9
Envia A mas tardar encuanto lo tengas por correo a ti mismo y al de jvivast@hotmail.com con el asunto de:
Practica 9 de …..
del grupo…
Puedes subirlo a
skydrive y comparteme la url por favor
Archivos adjuntos
Carpeta practica 9
comprimida