Programando en Visual Basic
Programando en Visual Basic
en
Visual Basic
Introducción a la
1
Programación
Programando en Visual Basic 3
2. LENGUAJE DE PROGRAMACIÓN
3. ALGORITMO
Ejemplo 1
Inicio
Obtener peso y estatura
Calcular: IMC = peso/(estatura*estatura)
Mostrar IMC
Fin
Ejemplo 2
El siguiente algoritmo determine el área y el precio de un terreno rectangular cuyo costo por metro
cuadrado es S/. 750
Inicio
Obtener largo y ancho
Calcular: areaterreno = largo*ancho
Calcular: precioterreno = areaterreno*750
Mostrar areaterreno y precioterreno
Fin
Programando en Visual Basic 4
Por ejemplo:
Las instrucciones para instalar un equipo de sonido
Una receta para preparar un plato de comida
5. PROGRAMA
6. ETAPAS DE UN ALGORITMO
Todo algoritmo tiene tres etapas claramente diferenciadas: entrada de datos, proceso de cálculo y
salida de resultados.
Generalmente, como es el caso de este curso, los datos de entrada se toman de la pantalla del
programa y los datos de salida se muestran en la pantalla del mismo programa.
Programando en Visual Basic 5
Ejemplo 3
En el siguiente gráfico, se especifican los datos de entrada y de salida para el cálculo del área de
un rectángulo.
Ejemplo 4
En el siguiente gráfico, se especifican los datos de entrada y de salida para el cálculo de la suma y
la resta de dos números.
Programando en Visual Basic 6
Estructuras
2
Secuenciales
Programando en Visual Basic 7
1. PROGRAMACIÓN ESTRUCTURADA
Visual Basic es un lenguaje de programación orientada en objetos que se utiliza principalmente efectos
como texto que aparece y desaparece, animaciones, acciones que se activan al pulsar botones y ventanas con
mensajes de aviso al usuario.
La Programación Estructurada en Visual Basic es muy similar a la de otros lenguajes de programación como
C y otros. Visual Basic enmarca normas básicas que definen la sintaxis que deben seguirse al escribir el código
fuente de los programas para considerarse como correctos.
Visual Basic, como cualquier otro utiliza las estructuras básicas, como también las estructuras de control
como ser del tipo "si se cumple esta condición, hazlo; si no se cumple, haz este otro". También existen
instrucciones del tipo "repite esto mientras se cumpla esta condición", etc.
2. PROGRAMACIÓN BÁSICA
Antes de comenzar a desarrollar programas y utilidades con Visual Basic, es necesario conocer los elementos
básicos con los que se construyen las aplicaciones. Si ya sabes programar en algún lenguaje de programación,
este capítulo te servirá para conocer la sintaxis específica de Visual Basic.
Si nunca has programado, este capítulo explica en detalle y comenzando desde cero los conocimientos básicos
necesarios para poder entender posteriormente la programación avanzada, que es la que se utiliza para crear las
aplicaciones reales.
2.1. IDENTIFICADORES
Las variables en los lenguajes de programación siguen una lógica similar a las variables utilizadas en otros
ámbitos como las matemáticas. Una variable es un elemento que se emplea para almacenar y hacer referencia
a otro valor. Gracias a las variables es posible crear "programas genéricos", es decir, programas que funcionan
siempre igual independientemente de los valores concretos utilizados.
De la misma forma que si en Matemáticas no existieran las variables no se podrían definir las ecuaciones y
fórmulas, en programación no se podrían hacer programas realmente útiles sin las variables. Si no existieran
variables, un programa que suma dos números podría escribirse como:
resultado = 3 + 1
El programa anterior es tan poco útil que sólo sirve para el caso en el que el primer número de la suma sea el
3 y el segundo número sea el 1. En cualquier otro caso, el programa obtiene un resultado incorrecto. Sin
embargo, el programa se puede rehacer de la siguiente manera utilizando variables para almacenar y referirse
a cada número:
numero1 = 3
numero2 = 1
resultado = numero1 + numero2
Los elementos numero1 y numero2 son variables que almacenan los valores que utiliza el programa. El
resultado se calcula siempre en función del valor almacenado por las variables, por lo que este programa
funciona correctamente para cualquier par de números indicado. Si se modifica el valor de las variables
numero1 y numero2, el programa sigue funcionando correctamente.
Programando en Visual Basic 8
La memoria de un computador consta de un conjunto enorme de bits (1 y 0), en la que se almacenan datos y
programas. Las necesidades de memoria de cada tipo de dato no son homogéneas (por ejemplo, un carácter
alfanumérico ocupa un byte (8 bits), mientras que un número real con 16 cifras ocupa 8 bytes), y tampoco lo
son las de los programas. Además, el uso de la memoria cambia a lo largo del tiempo dentro incluso de una
misma sesión de trabajo, ya que el sistema reserva o libera memoria a medida que la va necesitando.
Cada posición de memoria en la que un dato está almacenado (ocupando un conjunto de bits) puede
identificarse mediante un número o una dirección, y éste es el modo más básico de referirse a una determinada
información.
Dadas las citadas dificultades para referirse a un dato por medio de su dirección en memoria, se ha hecho
habitual el uso de identificadores. Un identificador es un nombre simbólico que se refiere a un dato o programa
determinado. Es muy fácil elegir identificadores cuyo nombre guarde estrecha relación con el sentido físico,
matemático o real del dato que representan. Así por ejemplo, es lógico utilizar un identificador llamado
salario_bruto o salarioBruto para representar el coste anual de un empleado. El usuario no tiene nunca que
preocuparse de direcciones físicas de memoria: el sistema se preocupa por él por medio de una tabla, en la que
se relaciona cada identificador con el tipo de dato que representa y la posición de memoria en la que está
almacenado.
Visual Basic 6.0, como todos los demás lenguajes de programación, tiene sus propias reglas para elegir los
identificadores. Los usuarios pueden elegir con gran libertad los nombres de sus variables y funciones, teniendo
siempre cuidado de respetar las reglas del lenguaje y de no utilizar un conjunto de palabras reservadas
(keywords), que son utilizadas por el propio lenguaje.
Una variable es un nombre que designa a una zona de memoria (se trata por tanto de un identificador), que
contiene un valor de un tipo de in formación.
Tal y como su nombre indica, las variables pueden cambiar su valor a lo largo de la ejecución de un programa.
Completando a las variables existe lo que se denomina constantes las cuales son identificadores pero con la
particularidad de que el valor que se encuentra en ese lugar de la memoria sólo puede ser asignado una única
vez. El tratamiento y tipos de datos es igual al de las variables.
Para declarar un dato como constante únicamente es necesario utilizar la palabra Const en la declaración de la
variable. Si durante la ejecución se intenta variar su valor se producirá un error. Ejemplos:
Visual Basic 6.0 tiene sus propias constantes, muy útiles por cierto. Algunas ya se han visto al hablar de los
colores. En general estas constantes empiezan por ciertos caracteres como vb (u otros similares que indican a
que grupo pertenecen) y van seguidas de una o más palabras que indican su significado. Para ver las constantes
disponibles se puede utilizar el comando View/Object Browser.
El nombre de una variable (o de una constante) tiene que comenzar siempre por una letra y puede tener una
longitud hasta 255 caracteres. No se admiten espacios o caracteres en blanco, ni puntos (.), ni otros caracteres
especiales.
Programando en Visual Basic 9
Los caracteres pueden ser letras, dígitos, el carácter de subrayado (_). El nombre de una variable no puede ser
una palabra reservada del lenguaje (For, If, Loop, Next, Val, Hide, Caption, And, ...). Para saber cuáles son
las palabras reservadas en Visual Basic 6.0 puede utilizarse el Help de dicho programa, buscando la referencia
Reserved Words. De ordinario las palabras reservadas del lenguaje aparecen de color azul en el editor de
código, lo que hace más fácil saber si una palabra es reservada o no.
A diferencia de C, Matlab, Maple y otros lenguajes de programación, Visual Basic 6.0 no distingue entre
minúsculas y mayúsculas. Por tanto, las variables LongitudTotal y longitudtotal son consideradas como
idénticas (la misma variable). En Visual Basic 6.0 es habitual utilizar las letras mayúsculas para separar las
distintas palabras que están unidas en el nombre de una variable, como se ha hecho anteriormente en la variable
LongitudTotal. La declaración de una variable o la primera vez que se utiliza determnan cómo se escribe en el
resto del programa.
También es habitual entre los programadores, aunque no obligado, el utilizar nombres con todo mayúsculas
para los nombres de las constantes simbólicas, como por ejemplo PI.
Al igual que C y otros lenguajes de programación, Visual Basic dispone de distintos tipos de datos, aplicables
tanto para constantes como para variables.
En el lenguaje Visual Basic 6.0 existen dos formas de agrupar varios valores bajo un mismo nombre. La primera
de ellas son los arrays (vectores y matrices), que agrupan datos de tipo homogéneo. La segunda son las
estructuras, que agrupan información heterogénea o de distinto tipo. En Visual Basic 6.0 las estructuras son
verdaderos tipos de datos definibles por el usuario.
Programando en Visual Basic 10
Dim i, j As Integer
pues contra lo que podría parecer a simple vista no se crean dos variables Integer, sino una Integer
(j) y otra Variant (i).
En Visual Basic 6.0 no es estrictamente necesario declarar todas las variables que se van a utilizar (a no ser
que se elija la opción Option Explicit que hace obligatorio el declararlas), y hay otra forma de declarar las
variables anteriores, utilizando los caracteres especiales así por ejemplo, el tipo de las variables del ejemplo
anterior se puede declarar al utilizarlas en las distintas expresiones, poniéndoles a continuación el carácter que
ya se indicó:
Esta forma de indicar el tipo de dato no es la más conveniente. Se mantiene en las sucesivas versiones de Visual
Basic por la compatibilidad con códigos anteriores. Es preferible utilizar la notación donde se escribe
directamente el tipo de dato.
Si en el código del programa se utiliza una variable que no ha sido declarada, se considera que esta variable es
de tipo Variant. Las variables de este tipo se adaptan al tipo de información o dato que se les asigna en cada
momento. Por ejemplo, una variable tipo Variant puede contener al principio del programa un string de
caracteres, después una variable de doble precisión, y finalmente un número entero. Son pues variables muy
flexibles, pero su uso debe restringirse porque ocupan más memoria (almacenan el tipo de dato que contienen,
además del propio valor de dicho dato) y requieren más tiempo de CPU que los restantes tipos de variables.
En general es el tipo de dato (los valores que puede tener en la realidad) lo que determina qué tipo de variable
se debe utilizar. A continuación se muestran algunos ejemplos:
Integer para numerar las filas y columnas de una matriz no muy grande
Long para numerar los habitantes de una ciudad o los números de teléfonos
Boolean para una variable con sólo dos posibles valores (sí o no)
Single para variables físicas con decimales que no exijan precisión
Double para variables físicas con decimales que exijan precisión
Programando en Visual Basic 11
Es muy importante tener en cuenta que se debe utilizar el tipo de dato más sencillo que represente
correctamente el dato real ya que en otro caso se ocupará más memoria y la ejecución de los programas o
funciones será más lenta.
Una variable que se utiliza sin haber sido declarada toma por defecto el tipo Variant. Puede ocurrir que durante
la programación, se cometa un error y se escriba mal el nombre de una variable. Por ejemplo, se puede tener
una variable " declarada como entera, y al programar referirse a ella por error como "; Visual Basic supondría
que ésta es una nueva variable de tipo Variant.
Para evitar este tipo de errores, se puede indicar a Visual Basic que genere un mensaje de error siempre que
encuentre una variable no declarada previamente. Para ello lo más práctico es establecer una opción por defecto,
utilizando el comando Environment del menú Tools/Options; en el cuadro que se abre se debe poner Yes en la
opción Require Variable Declaration. También se puede hacer esto escribiendo la sentencia siguiente en la
sección de declaraciones de cada formulario y de cada módulo:
Option Explicit
2.7. OPERADORES
Programando en Visual Basic 12
Las variables por sí solas son de poca utilidad. Hasta ahora, sólo se ha visto cómo crear variables de diferentes
tipos. Para hacer programas realmente útiles, son necesarias otro tipo de herramientas.
Los operadores permiten manipular el valor de las variables, realizar operaciones matemáticas con sus valores
y comparar diferentes variables. De esta forma, los operadores permiten a los programas realizar cálculos
complejos y tomar decisiones lógicas en función de comparaciones y otros tipos de condiciones.
Cuando en una expresión aritmética intervienen operandos de diferentes tipos, el resultado se expresa,
generalmente, en la misma precisión que la del operando que la tiene más alta. El orden, de menor a mayor,
según la precisión es Integer, Long, Single, Double y Currency.
Los operadores relacionales, también conocidos como operadores de comparación, comparan dos expresiones
dando un resultado True (verdadero), False (falso) o Null (no válido).
El operador & realiza la concatenación de dos operandos. Para el caso particular de que ambos operandos sean
cadenas de caracteres, puede utilizarse también el operador +. No obstante, para evitar ambigüedades (sobre
todo con variables de tipo Variant) es mejor utilizar &.
El operador Like sirve para comparar dos cadenas de caracteres. La sintaxis para este operador es la siguiente:
donde la variable Respuesta será True si la Cadena1 coincide con la Cadena2, False si no coinciden y Null si
Cadena1 y/o Cadena2 son Null.
Inicio / Fin
Entrada de Datos
Salida de Datos
Proceso / Asignación
Flujo de Datos
Programando en Visual Basic 13
3. EJERCICIOS
4. MENSAJES MIXTOS
Para una mejor visualización de los resultados, se recurren a los mensajes mixtos que son la capacidad de
imprimir una combinación de cadenas de caracteres, variables y operaciones matemáticas. Tiene el siguiente
esquema:
La fórmula generalizada resulta parecer muy difícil hallarla, más aún cuando se tienen dos razones (R1 y R2).
Para ello B es la base y R es la razón.
B + R * (N-1)
Cuando la razón sea +R Entonces
(R1+R2) * (N/2) ± ?
Cuando la razón sea *R Entonces B * R ^ (N-1)
Cuando la razón sea ^R Entonces B ^ [R ^ (N-1) ]
Solución:
+2 +2 +2 (Razón)
SERIE(4) = 1, 3, 5, 7
T = 1 + 2*(N-1)
Finalmente:
*4 *4 *4 (Razón)
SERIE (4) = 3, 12, 48, 192
T = 3 * 4^(N-1)
Finalmente:
^3 ^3 (Razón)
SERIE (3) = 2, 8, 512
T = 2^[3^(N-1)]
Finalmente:
Estos operadores son muy utilizados para la digitalización de números, y tiene el siguiente esquema:
17 DIV 5 es equivalente a 3
17 MOD 5 es equivalente a 2
17 DIV 4 es equivalente a 4
17 MOD 4 es equivalente a 1
17 DIV 10 es equivalente a 1
17 MOD 10 es equivalente a 7
3 DIV 5 es equivalente a 0
3 MOD 5 es equivalente a 3
Programando en Visual Basic 18
Estructuras
3
Condicionales
Programando en Visual Basic 19
1. ESTRUCTURAS DE CONTROL
Los programas que se pueden realizar utilizando solamente variables y operadores con una simple sucesión
lineal de instrucciones utilizan simples Digramas Básicos. Sin embargo, no se pueden realizar programas que
muestren un mensaje si el valor de una variable es igual a un valor determinado y no muestren el mensaje en
el resto de casos. Para realizar este tipo de programas son necesarias las estructuras de control, que son
instrucciones del tipo "si se cumple esta condición, hazlo; si no se cumple, haz esto otro". También existen
instrucciones del tipo "repite esto mientras se cumpla esta condición", etc.
Si se utilizan estructuras de control, los programas dejan de ser una sucesión lineal de instrucciones para
convertirse en programas inteligentes que pueden tomar decisiones en función del valor de las variables.
If Condicion Then
...
Else
...
End If
Si la condición se cumple (es decir, si su valor es True) se ejecutan todas las instrucciones que se encuentran a
continuación del Then. Si la condición no se cumple (es decir, si su valor es False) se ejecutan todas las
instrucciones que se encuentran a continuación del Else.
Para indicar que se quiere ejecutar uno de varios bloques de sentencias dependientes cada uno de ellos de una
condición, la estructura adecuada es la siguiente:
Programando en Visual Basic 20
If condicion1 Then
sentencias1
ElseIf condicion2 Then
sentencias2
Else
sentencia-n
End If
Los operadores AND y OR permiten encadenar varias condiciones simples para construir condiciones
complejas:
1.2. ANIDACIONES
Las anidaciones consisten en circunscribir una estructura de control dentro de otra estructura de control, en
diferentes niveles de profundidad y según la necesidad.
Esta sentencia que corresponde a una Estructura de Control, permite ejecutar una de entre varias acciones en
función del valor de una expresión.
Es una alternativa a If ... Then ... ElseIf cuando se compara la misma expresión con diferentes valores. Su
forma general es la siguiente:
Donde expresion es una expresión numérica o alfanumérica, y etiq1, etiq2, ... pueden adoptar las formas
siguientes:
1. expresion
2. expresion To expresion
3. Is operador-de-relación expresion
4. combinación de las anteriores separadas por comas
Ejemplo 4) Verificar si un valor entero pertenece a los intervalos [1,5], [6,8] y [9,10]
Cuando se utiliza la forma expresion To expresion, el valor más pequeño debe aparecer en primer lugar.
Cuando se ejecuta una sentencia Select Case, Visual Basic evalúa la expresion y el control del programa se
transfiere a la sentencia cuya etiqueta tenga el mismo valor que la expresión evaluada, ejecutando a
continuación el correspondiente bloque de sentencias. Si no existe un valor igual a la expresion entonces se
ejecutan las sentencias a continuación de Case Else.
Programando en Visual Basic 23
1.4. MSGBOX
Estas cajas de diálogo son similares a las que se utilizan en muchas aplicaciones de Windows. La caja de
mensajes o MsgBox abre una ventana a través de la cual se envía un mensaje al usuario y se le pide una
respuesta, por ejemplo en forma de clicar un botón O.K./Cancel, o Yes/No. Este tipo de mensajes son muy
utilizados para confirmar acciones y para decisiones sencillas. La caja de diálogo InputBox pide al usuario que
teclee una frase, por ejemplo su nombre, un título, etc.
Donde respuesta (opcional) es la variable donde se almacena el valor de retorno, que es un número indicativo
del botón clicado por el usuario, de acuerdo con sus valores. La constante simbólica que representa el valor de
retorno indica claramente el botón clicado. Los otros dos argumentos son opcionales. El parámetro
tiposBotones es un entero que indica la combinación de botones deseada por el usuario. También en este caso
la constante simbólica correspondiente es suficientemente explícita. Si este argumento se omite se muestra sólo
el botón O.K. El parámetro titulo contiene un texto que aparece como título de la ventana; si se omite, se
muestra en su lugar el nombre de la aplicación.
Finalmente, se puede incluir en el mensaje un icono ad-hoc por el mismo procedimiento de sumarle al
argumento tiposBotones una nueva constante numérica con los siguientes valores y significados definidos por
la constante simbólica apropiada: 16 (vbCritical), 32 (vbQuestion), 48 (vbExclamation) y 64 (vbInformation).
Es obvio que, por los propios valores considerados, al sumar
estas constantes o las anteriores al argumento tiposBotones:
donde el “2” indica que deben aparecer los botones Abort, Retry y Cancel, el “256” indica que el botón por
defecto es el segundo (Retry) y el “48” indica que debe aparecer el icono de exclamación.
donde texto es la variable donde se almacena el valor de retorno, que es el texto tecleado por el usuario. Los
parámetros "texto para el usuario" y titulo tienen el mismo significado que en MsgBox. El parámetro default
es un texto por defecto que aparece en la caja de texto y que el usuario puede aceptar, modificar o sustituir; el
contenido de esta caja es lo que en definitiva esta función devuelve como valor de retorno. Finalmente, left y
top son las coordenadas de la esquina superior izquierda de la InputBox; si se omiten, Visual Basic 6.0 dibuja
esta caja centrada en horizontal y algo por encima de la mitad de la pantalla en vertical:
lblBox.Caption = InputBox("Escriba su nombre: ", "Caja de entrada", "Miguel
Indurain")
donde el nombre que aparece por defecto es el del mejor ciclista de los últimos tiempos. Este nombre aparece
seleccionado y puede ser sustituido por otro que teclee el usuario.
Programando en Visual Basic 24
Ejemplo 5) Calcular el costo total del salario semanal de 20 empleados de una empresa, sabiendo que
éstos se calculan en base a las horas semanales trabajadas y de acuerdo a un precio especificado por cada
hora. Si se pasan de 40 horas semanales, las horas extraordinarias se pagarán a razón de 1,5 veces la hora
ordinaria. Ej.: Si las horas trabajadas en la semana es un total de 55 horas y el precio por hora es 9$us,
entonces el costo total de los 20 empleados es 11250$us
Estructuras
4
Repetitivas
Programando en Visual Basic 26
1. INTRODUCCIÓN
Estas estructuras de control son llamados también bucles, ciclos o lazos. Como sus nombres lo indican son
estructuras que iteran según la condición determinada.
2. ESTRUCTURA WHILE
La estructura while (mientras) permite crear bucles que se ejecutan ninguna o más veces, dependiendo de la
condición indicada.
While condicion
[sentencias]
Wend
El funcionamiento del bucle while se resume en: "mientras se cumpla la condición indicada, repite
indefinidamente las instrucciones incluidas dentro del bucle".
Evidentemente, las variables que controlan la condición deben modificarse dentro del propio bucle, ya que de
otra forma, la condición se cumpliría siempre y el bucle while se repetiría indefinidamente.
Dentro del bucle se suele usar una variable Contador como también otra variable Acumulador Si no se actualiza
el valor de la variable Contador, la ejecución del bucle continua infinitamente o hasta que el navegador permita
al usuario detener con un Ctrl + C.
Ejemplo 1) Sumar todos los números naturales menores o iguales que un número introducido por teclado.
Por ejemplo si el número introducido por teclado es 5, se debe calcular: 1 + 2 + 3 + 4 + 5 = 15
3. ESTRUCTURA UNTIL
La estructura Until (hasta) permite crear bucles que se ejecutan una o más veces, dependiendo de la condición
indicada.
Un Loop (bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta, o
hasta que una condición dada sea cierta. La condición puede ser verificada antes o después de ejecutarse el
conjunto de sentencias. Sus posibles formas son las siguientes:
’ Formato 1:
Do [{While/Until} condicion]
[sentencias]
[Exit Do]
[sentencias]
Loop
’ Formato 2:
Do
[sentencias]
[Exit Do]
[sentencias]
Loop [{While/Until}condicion]
La sentencia opcional Exit Do permite salir de una bucle Do ... Loop antes de que finalice éste. Por ejemplo
podemos resolver el anterior ejemplo con todas las otras cuatro variantes más:
5. ESTRUCTURA FOR
La estructura for (para) permite realizar este tipo de repeticiones (también llamadas bucles) de una forma muy
sencilla, debido al uso de los contadores automáticos.
Programando en Visual Basic 30
La idea del funcionamiento de un bucle for es la siguiente: "mientras la condición indicada se siga
cumpliendo, repite la ejecución de las instrucciones definidas dentro del for. Además, después de cada
repetición, actualiza el valor de las variables que se utilizan en la condición".
La "inicialización" es la zona en la que se establece los valores iniciales de las variables que controlan la
repetición.
La "condición" es el único elemento que decide si continua o se detiene la repetición.
La "actualización" es el nuevo valor que se asigna después de cada repetición a las variables que controlan
la repetición (contador automático).
Ejemplo 6) Generar bajo dos enfoques diferentes la serie S = 2, 4, 9, 11, 16, 18, 23, 25, 30, …
6. LOTES
Programando en Visual Basic 33
Un lote de números son un conjunto de datos que se introducen por teclado de manera aleatoria sin ningún
orden o secuencia.
Por ejemplo: 2, -5, 100, 55, 2022, -1, …
Se caracteriza por considerar los elementos de la serie o sucesión, como parámetro de resolución.
Ejemplo 8) Hallar el sumatoria de los números impares de un número natural impar cualquiera.
*4 *4 (Razón)
SERIE (48) = 3 + 12 + 48
Se caracteriza por realizar una enumeración sucesiva de todos los términos para hallar la solución del n-ésimo
término. En este método, se debe identificar la base y la razón.
Ejemplo 10) Hallar el sumatoria de los números impares de un número natural cualquiera.
Enumeración 1 2 3 4 ……. n
IMPAR(N) = 1 + 3 + 5 + 7 + .......... + N
SERIE (4) = 1 + 3 + 5 + 7
8. DIGITALIZACIÓN DE NÚMEROS
Consiste en la manipulación de dígito por dígito, sea por la parte derecha o izquierda, la primera es más sencilla
que la segunda. Para esto hacemos uso de los operadores MOD y DIV que según algunas plataformas su
notación varía. En este caso particular de la digitalización se hace uso de la división entre múltiplos de 10;
según su necesidad.
Arreglos 5
Programando en Visual Basic 39
1. CONCEPTO
Un array es un arreglo que 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. 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.
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.
Este ejemplo declara un array de una dimensión, llamado vector, con diez elementos, vector(0),
vector(1), ... , vector(9), cada uno de los cuales permite almacenar un Double. Salvo que se indique
otra cosa, los índices se empiezan a contar en cero.
Este ejemplo declara un array de dos dimensiones, llamado matriz, con 4x6 elementos, matriz(0,1),
... matriz(3,6), de tipo entero.
El ejemplo anterior declara un array de una dimensión, cadena, con cinco elementos, cadena(1), ... ,
cadena(5), 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.
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.
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)
...
End Sub
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.
Programando en Visual Basic 41
2. VECTORES
Los vectores son arreglos de una dimensión, por lo que usan un índice para recorrer sus elementos y tienen el
siguiente esquema:
VEC 8 1 17 51 -3 7 4 12 … 10
1 2 3 4 5 6 7 8 … N
3. MATRICES
Las matrices son arreglos de dos dimensiones, por lo que usan dos índices para identificar sus elementos y
tienen el siguiente esquema:
MAT
1 8 1 4 … 6
FILAS
2 2 5 8 … 1
3 1 7 9 … 3
.
. . . . .
.
. . . . .
.
. . . . .
N 9 6 3 … 7
MAT(1,3) contiene 4
MAT(2,M) contiene 1
MAT(3,2) contiene 7
MAT(N,1) contiene 9
Consiste en llenar las matrices de manera secuencial con el uso de contadores, en este caso en particular
adecuamos al uso de matrices cuadradas.
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
Private Sub Form_Activate()
Dim f As Integer, c As Integer, n As Integer, cont As Integer
Dim MAT(1 To 100, 1 To 100) As Long
n = InputBox("DIGITE # DE FILAS", "MATRICES")
cont = 1
For f = 1 To n
For c = 1 To n
MAT(f, c) = cont
cont = cont + 1
Next c
Next f
For f = 1 To n
For c = 1 To n
Print MAT(f, c),
Next c
Print
Next f
End Sub
Programando en Visual Basic 46