0% encontró este documento útil (0 votos)
138 vistas47 páginas

Programando en Visual Basic

El documento proporciona una introducción a la programación en Visual Basic. Explica los fundamentos de la programación, incluidos los conceptos de lenguaje de programación, algoritmo, programa, variables e identificadores. También describe las estructuras secuenciales básicas utilizadas en la programación estructurada de Visual Basic.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
138 vistas47 páginas

Programando en Visual Basic

El documento proporciona una introducción a la programación en Visual Basic. Explica los fundamentos de la programación, incluidos los conceptos de lenguaje de programación, algoritmo, programa, variables e identificadores. También describe las estructuras secuenciales básicas utilizadas en la programación estructurada de Visual Basic.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 47

Programando

en
Visual Basic

Lic. Raúl Miranda Choque


Programando en Visual Basic 2

Introducción a la
1
Programación
Programando en Visual Basic 3

1. FUNDAMENTOS EN OPERADOR DE COMPUTADORAS

La programación requiere de la capacitación de Operador de Computadores donde se


abarca el manejo de las plataformas y entornos, además de métodos abreviados. Es
primordial el manejo adecuado del office (Word, Excel, Power Point, etc), Windows,
configuraciones, etc.

2. LENGUAJE DE PROGRAMACIÓN

Un lenguaje de programación es un lenguaje formal (o artificial, es decir, un lenguaje con reglas


gramaticales bien definidas) que le proporciona a una persona, en este caso el programador, la
capacidad de escribir (o programar) una serie de instrucciones o secuencias de órdenes en forma
de algoritmos con el fin de controlar el comportamiento físico o lógico de un sistema informático, de
manera que se puedan obtener diversas clases de datos o ejecutar determinadas tareas. A todo
este conjunto de órdenes escritas mediante un lenguaje de programación se le denomina programa
informático.

3. ALGORITMO

Un algoritmo es un método de solución de un problema expresado a través de un conjunto de pasos


lógicos, procedimientos o acciones. Son algoritmos los siguientes:

 Las instrucciones para instalar un equipo de sonido


 Una receta para preparar un plato de comida
 Las instrucciones para hallar el máximo común divisor de dos números
 Las instrucciones para convertir una cantidad dada en soles a dólares

Ejemplo 1

El siguiente algoritmo determina el índice de masa corporal de una persona (IMC)

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

4. CLASIFICACIÓN DE LOS ALGORITMOS

Los algoritmos pueden clasificarse en algoritmos computacionales y algoritmos no computacionales.


Un algoritmo es no computacional cuando no puede ser ejecutado en una computadora. El ejecutor
de este tipo de algoritmo es un ser humano.

Por ejemplo:
 Las instrucciones para instalar un equipo de sonido
 Una receta para preparar un plato de comida

5. PROGRAMA

Un programa es un conjunto de instrucciones expresadas mediante un lenguaje de programación


como Java, C, C++, etc. Las instrucciones del programa se obtienen escribiendo las instrucciones
del algoritmo mediante el lenguaje de programación elegido. A las instrucciones de un programa
expresadas mediante un lenguaje de programación se denomina también código fuente.

Un programa surge ante la necesidad de automatizar la solución de un problema. La Figura 1


muestra que antes de la escritura de un programa, se necesita diseñar un algoritmo. De esta manera,
podemos decir, que un programa es la implementación de un algoritmo mediante un lenguaje de
programación de forma que sea entendible por el procesador.

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.

2.2. VARIABLES Y CONSTANTES

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:

Const MyVar = 123 ’ Las constantes son privadas por defecto.


Public Const MyString = "PROGRAM" ' Declaración de una constante pública.
Private Const My_Int As Integer = 15 ' Declaración de un entero constante.
Const Str = "Hi", PI As Double = 3.1416 ' Múltiples constantes en una
línea.

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.

2.3. NOMBRES DE VARIABLES

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.

2.4. TIPOS DE DATOS

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

Para declarar las variables se utiliza la sentencia siguiente:

Dim NombreVariable As TipoVariable

cuyo empleo se muestra en los ejemplos siguientes:

Dim Radio As Double, Superficie as Single


Dim Nombre As String
Dim Etiqueta As String * 10
Dim Francos As Currency
Dim Longitud As Long, X As Long

Es importante evitar declaraciones del tipo:

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ó:

Radio# doble precisión


Nombre$ cadena de caracteres
Francos@ unidades monetarias
Longitud& entero largo

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.

2.5. ELECCIÓN DEL TIPO DE UNA VARIABLE

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

Currency para cantidades grandes de dinero

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.

2.6. DECLARACIÓN EXPLÍCITA DE VARIABLES

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:

Respuesta = Cadena1 Like Cadena2

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.

2.8. DIAGRAMAS DE FLUJO DE DATOS BÁSICOS

Inicio / Fin

Entrada de Datos

Salida de Datos

Proceso / Asignación

Flujo de Datos
Programando en Visual Basic 13

3. EJERCICIOS

Ejemplo 1) Mostrar en pantalla el mensaje “Hola”.

Private Sub Form_Activate()


Print "Hola"
End Sub

Ejemplo 2) Leer un número y mostrarlo en pantalla.

Private Sub Form_Activate()


N = InputBox("Digite un #", "ESTR. SECUENCIALES")
Print N
End Sub
Programando en Visual Basic 14

Ejemplo 3) Leer dos valores para luego mostrar su producto.

Private Sub Form_Activate()


A = InputBox("Digite el valor de A")
B = InputBox("Digite el valor de B")
S = A * B
Print S
End Sub
Programando en Visual Basic 15

Ejemplo 4) Leer dos valores para luego mostrar la suma de éstos.

Private Sub Form_Activate()


Dim A As Integer, B As Integer
A = InputBox("Digite el valor de A")
B = InputBox("Digite el valor de B")
Print A + B
End Sub

Ejemplo 5) Calcular el área de una circunferencia.

Private Sub Form_Activate()


R = InputBox("Digite el valor del Radio")
Print 3.1416 * R ^ 2
End Sub
Programando en Visual Basic 16

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:

cadena, 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒, cadena, 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒, …


5. FÓRMULAS PARA HALLAR EL N-ÉSIMO TÉRMINO DE SERIES Y SUCESIONES.

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) ]

Ejemplo 6) Hallar el n-ésimo término de los números impares naturales.

Solución:

Particularizando, la Sucecion de 4 será.

+2 +2 +2 (Razón)
SERIE(4) = 1, 3, 5, 7

Luego identificando que la razón es +2 y la base 1 hallamos la fórmula:

T = 1 + 2*(N-1)
Finalmente:

Private Sub Form_Activate()


Print “SERIE(N)= 1,3,5,7,9,11,13,15,…”
N = InputBox("Digite N:", "N-ÉSIMO TÉRMINO")
Print " El "; N; " Término";" es : ",1 + 2 * (N - 1)
End Sub

Ejemplo 7) Hallar: SERIE (n) = 3, 12, 48, 192, 768, ...

Solución: Procediendo de la misma manera se obtendrá:

Particularizando, hallar la serie de 4 será:

*4 *4 *4 (Razón)
SERIE (4) = 3, 12, 48, 192

Luego identificando que la razón es *4 y la base 3 hallamos la fórmula:


Programando en Visual Basic 17

T = 3 * 4^(N-1)
Finalmente:

Private Sub Form_Activate()


Print “SERIE(N)= 3,12,48,192,768,3072,…”
N = InputBox("Digite N:", "N-ÉSIMO TÉRMINO")
Print 3 * 4 ^ (N - 1); " Es el "; N; " Término"
End Sub

Ejemplo 8) Hallar: SERIE (n) = 2, 8, 512, ...

Solución: Procediendo de la misma manera se obtendrá:

Particularizando, hallar la serie de 3 será:

^3 ^3 (Razón)
SERIE (3) = 2, 8, 512

Luego identificando que la razón es ^3 y la base 2 hallamos la fórmula:

T = 2^[3^(N-1)]
Finalmente:

Private Sub Form_Activate()


Print “SERIE(N)= 2,8,512,…”
N = InputBox("Digite N:", "N-ÉSIMO TÉRMINO")
Print 2 ^(3^(N - 1)); " Es el "; N; " Término"
End Sub

6. OPERADORES MOD Y DIV

Estos operadores son muy utilizados para la digitalización de números, y tiene el siguiente esquema:

Es decir, los resultados y su representación serán:

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.

1.1. ESTRUCTURA IF THEN ELSE

La estructura más utilizada en Visual Basic y en la mayoría de lenguajes de programación es la estructura If


Then Else. Se emplea para tomar decisiones en función de una condición. Esta estructura permite ejecutar
condicionalmente una o más sentencias y puede escribirse de dos formas. La primera ocupa sólo una línea y
tiene la forma siguiente:

If condicion Then sentencia1 [Else sentencia2]

La segunda es más general y se muestra a continuación:

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

Si se cumple la condicion1 se ejecutan las sentencias1, y si no se cumple, se examinan secuencialmente las


condiciones siguientes hasta Else, ejecutándose las sentencias correspondientes al primer ElseIf cuya condición
se cumpla. Si todas las condiciones son falsas, se ejecutan las sentencias-n correspondientes a Else, que es la
opción por defecto.

Ejemplo 1) Mostrar si un numero es positivo o negativo

Private Sub Form_Activate()


N=Val(InputBox("Digite un #", "ESTR. COND."))
If N >= 0 Then
Print N; " Es Positivo"
Else
End If
End Sub
Programando en Visual Basic 21

Los operadores AND y OR permiten encadenar varias condiciones simples para construir condiciones
complejas:

Ejemplo 2) Verificar que un número pertenezca a un intervalo cerrado abierto [4,10>

Private Sub Form_Activate()


N = InputBox("Digite un #", "EST. COND")
If N >= 4 And N < 10 Then
Print N; " Pertenece al Intervalo [4,10>"
Else
Print N; " No Pertenece al Intervalo [4,10>"
End If
End Sub

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.

Ejemplo 3) Resolver el anterior ejercicio.

Private Sub Form_Activate()


N = InputBox("Digite un #", "EST. COND")
If N >= 4 then
If N < 10 Then
Print N; " Pertenece al Intervalo [4,10>"
Else
Print N; " No Pertenece al Intervalo [4,10>"
End If
Else
Print N; " No Pertenece al Intervalo [4,10>"
End if
End Sub
Programando en Visual Basic 22

1.3. SELECCIÓN MÚLTIPLE

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:

Select Case expresion


Case etiq1
[sentencias1]
Case etiq2
[sentencias2]
Case Else
sentenciasn
End Select

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]

Private Sub Form_Activate()


Numero = InputBox("Digite un Número Entero",”SELECT CASE”)
Select Case Numero ' Se va a evaluar la variable Numérica Entera.
Case 1 To 5 ' Numero está entre 1 y 5.
Print Numero;" Se encuentra entre 1 y 5"
' Lo siguiente se ejecuta si es True la expresión.
Case 6, 7, 8 ' Numero es uno de los tres valores.
Print Numero;" Se encuentra entre 6 y 8"
Case Is = 9, Is = 10 ' Numero es 9 ó 10.
Print Numero;" El valor es 9 o 10"
Case Else ' Resto de valores.
Print Numero;" El número no se encuentra entre 1 y 10"
End Select
End Sub

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.

La forma general de la función MsgBox es la siguiente:

respuesta = MsgBox "mensaje", tiposBotones, "título de la ventana"

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:

MsgBox "Pulse un botón: ", 2 + 256 + 48, "Caja de mensajes"

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.

Por otra parte, la forma general de la función InputBox es la siguiente:


texto = InputBox("texto para el usuario", "titulo", "default", left, top)

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

Private Sub Form_Activate()


ht = InputBox("Digite Horas Trabajadas", "EST.COND")
ph = InputBox("Digite Precio por Horas Trabajadas")
EXTRAS = ht - 40
If EXTRAS > 0 Then
COSTO = ((ht - EXTRAS) * ph + EXTRAS * ph * 1.5) * 20
Else
COSTO = ht * ph * 20
End If
Print "Horas Trabajadas = "; ht; " y el precio por hora es "; ph; " de
20 empleados es: "; COSTO
MsgBox "Horas Trabajadas = " + ht + " y el precio por hora es " + ph + "
de 20 empleados es " + CStr(COSTO)
End Sub
Programando en Visual Basic 25

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.

Su esquema formal es:

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".

Si la condición no se cumple ni siquiera la primera vez, el bucle no se ejecuta. Si la condición se cumple, se


ejecutan las instrucciones una vez y se vuelve a comprobar la condición. Si se sigue cumpliendo la condición,
se vuelve a ejecutar el bucle y así se continúa hasta que la condición no se cumpla.

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.

Ambos tienen las siguientes estructuras:

𝐶𝑂𝑁𝑇𝐴𝐷𝑂𝑅 = 𝐶𝑂𝑁𝑇𝐴𝐷𝑂𝑅 + (𝑉𝑎𝑙𝑜𝑟 𝐹𝑖𝑗𝑜)

𝐴𝐶𝑈𝑀𝑈𝐿𝐴𝐷𝑂𝑅 = 𝐴𝐶𝑈𝑀𝑈𝐿𝐴𝐷𝑂𝑅 + (𝑉𝑎𝑙𝑜𝑟 𝑉𝑎𝑟𝑖𝑎𝑛𝑡𝑒)


Programando en Visual Basic 27

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

Private Sub Form_Activate()


Dim n As Integer, C As Integer, S As Integer
Print “SUMA(N)=1+2+3+4+5+6+7+8+9+…”
n = InputBox("Digite N","ESTRUCTURA REPETITIVA")
C = 1
S = 0
While C <= n
S = S + C
C = C + 1
Wend
Print "La Suma hasta "; n; " es: "; S
End Sub

3. ESTRUCTURA UNTIL

La estructura Until (hasta) permite crear bucles que se ejecutan una o más veces, dependiendo de la condición
indicada.

Su esquema formal es:


Programando en Visual Basic 28

4. SENTENCIA DO ... LOOP

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:

Private Sub Form_Activate()


Dim c As Byte, n As Byte, s As Integer
Print “SUMA(N)=1+2+3+4+5+6+7+8+9+…”
n = InputBox("Digite N:", "BUCLES")
c = 0
s = 0
Do While c < n
c = c + 1
s = s + c
Loop
Print "La Suma hasta "; n; " es: "; s
End Sub

Private Sub Form_Activate()


Dim c As Byte, n As Byte, s As Integer
Print “SUMA(N)=1+2+3+4+5+6+7+8+9+…”
n = InputBox("Digite N:", "BUCLES")
c = 0
s = 0
Do
s = s + c
c = c + 1
Loop While c <= n
Print "La Suma hasta "; n; " es: "; s
End Sub
Programando en Visual Basic 29

Private Sub Form_Activate()


Dim c As Byte, n As Byte, s As Integer
Print “SUMA(N)=1+2+3+4+5+6+7+8+9+…”
n = InputBox("Digite N:", "BUCLES")
c = 0
s = 0
Do Until c >= n
c = c + 1
s = s + c
Loop
Print "La Suma hasta "; n; " es: "; s
End Sub

Private Sub Form_Activate()


Dim c As Byte, n As Byte, s As Integer
Print “SUMA(N)=1+2+3+4+5+6+7+8+9+…”
n = InputBox("Digite N:", "BUCLES")
c = 0
s = 0
Do
c = c + 1
s = s + c
Loop Until c >= n
If n <> 0 Then
Print "La Suma hasta "; n; " es: "; s
Else
Print "La Suma hasta "; n; " es: 0"
End If
End Sub

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

For variable = expresion1 To expresion2 [Step expresion3]


[sentencias]
Exit For
[sentencias]
Next [variable]

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 2) Resolver el ejercio anterior.

Private Sub Form_Activate()


Print “SUMA(N)=1+2+3+4+5+6+7+8+9+…”
n = InputBox("Digite N:", "FOR")
s = 0
For c = 1 To n Step 1
s = s + c
Next c
Print "La Suma hasta "; n; " es: "; s
End Sub
Programando en Visual Basic 31

Ejemplo 3) Hallar la suma S = 20 + 17 + 14 + 11 + 8 + 5 + …

Private Sub Form_Activate()


Print "SUMA(N)=20+17+14+11+8+5+..."
n = InputBox("Digite N:", "FOR")
s = 0
For c = 20 To n Step -3
s = s + c
Next c
Print "La Suma hasta "; n; " es: "; s
End Sub

Ejemplo 4) Generar la serie S = 5, 8, 11, 14, 17, …

Private Sub Form_Activate()


Print "SERIE(N)= 5, 8, 11, 14, 17,..."
Print
Print "SERIE(N)= ";
n = InputBox("Digite N:", "FOR")
For c = 5 To n Step 3
Print c;”, ”;
Next c
End Sub

Ejemplo 5) Generar la serie S = 0, 1, 1, 2, 3, 5, 8, 13, 21, …

Private Sub Form_Activate()


Print "SERIE(N)= 0, 1, 1, 2, 3, 5, 8, 13, 21, ..."
Print
A = 0
B = 1
F = 1
N = Val(InputBox("Digite N:", "FOR"))
If N < 0 Then Print "SERIE(“ ;N; ”)= " Else Print "SERIE(“ ;N; “)=0, ";
While F <= N
Print F; ", ";
F = A + B
A = B
B = F
Wend
End Sub
Programando en Visual Basic 32

Ejemplo 6) Generar bajo dos enfoques diferentes la serie S = 2, 4, 9, 11, 16, 18, 23, 25, 30, …

Private Sub Form_Activate()


'USANDO SWITH HALLA HASTA UN ELEMENTO DE LA SERIE
Print "SERIE(N)= 2, 4, 9, 11, 16, 18, 23, 25, 30, ..."
Print
Print "SERIE(N) = ";
N = Val(InputBox("Digite N:", "FOR"))
SW = 0
C = 2
While C <= N
If SW = 0 Then
Print C; ", ";
C = C + 2
SW = 1
Else
Print C; ", ";
C = C + 5
SW = 0
End If
Wend
End Sub

Private Sub Form_Activate()


'HALLA LOS N PRIMEROS TÉRMINOS DE LA SERIE
Print "SERIE(N)= 2, 4, 9, 11, 16, 18, 23, 25, 30, ..."
Print
Print "SERIE(N) = ";
N = Val(InputBox("Digite N:", "FOR"))
C2 = 2
For C1 = 1 To N
If C1 Mod 2 = 1 Then
Print C2; ", ";
C2 = C2 + 2
Else
Print C2; ", ";
C2 = C2 + 5
End If
Next C1
End Sub

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, …

Ejemplo 7) Sumar un lote de números.

Private Sub Form_Activate()


N = InputBox("Digite N", "LOTES")
S = 0
Print "LOTE= ";
For C = 1 To N
L = InputBox("Digite el Lote", "LOTES")
Print L; ", ";
S = S + L
Next C
Print
Print " SUMA = "; S
End Sub
Programando en Visual Basic 34

7. MÉTODO DE RESOLUCIÓN DE SERIES Y SUCESIONES

7.1. MÉTODO POR ELEMENTO

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.

Particularizando, hallar la sumatoria hasta el elemento 7.


+2 +2 +2 (Razón)
IMPAR(7) = 1 + 3 + 5 + 7

Luego identificando que la razón es +2, y la base 1:

Private Sub Form_Activate()


Dim n As Integer, C As Integer, S As Integer
Print "SERIE=1+3+5+7+9+11+15+..."
n = InputBox("Digite N", "SERIES POR ELEMENTO")
C = 1
S = 0
While C <= n
S = S + C
C = C + 2
Wend
Print "LA SUMA HASTA EL ELEMENTO: "; n; " ES= "; S
End Sub

Ejemplo 9) Hallar y Generar la SERIE (n) = 3 + 12 +48 + 192 + ........

Particularizando, hallar la serie hasta el elemento 48

*4 *4 (Razón)
SERIE (48) = 3 + 12 + 48

Luego identificando que la razón es *4, y la base 3:

Private Sub Form_Activate()


Dim n As Integer, C As Integer, S As Integer
Print "SERIE=3+12+48+192+768+3072+..."
n = InputBox("Digite N", "SERIES POR ELEMENTO")
Print
C = 3
S = 0
Print "SERIE= ";
While C <= n
Print C;", ";
S = S + C
C = C *4
Wend
Print
Print "LA SUMA HASTA EL ELEMENTO: "; n; " ES= "; S
End Sub
Programando en Visual Basic 35

7.2. MÉTODO POR ENUMERACIÓN

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

Particularizando, hallar la serie de los primeros 4 términos identificamos la Razón +2 y Base 1:

SERIE (4) = 1 + 3 + 5 + 7

Private Sub Form_Activate()


Dim n As Integer, C1 As Integer, C2 As Integer, S As Integer
Print "SERIE=1+3+5+7+9+11+15+..."
n = InputBox("Digite N", "SERIES POR ENUMERACIÓN")
C1 = 1
C2 = 1
S = 0
While C1 <= n
S = S + C2
C1 = C1 + 1
C2 = C2 + 2
Wend
Print "LA SUMA DE LOS PRIMEROS "; n; " TÉRMINOS ES= "; S
End Sub

Ejemplo 11) SERIE (n) = 2 + 10 + 50 + 250 + 1250 + …

Particularizando, hallar la serie de 4 identificamos la Razón *5 y Base 2:


1 2 3 4
SERIE (4) = 2 + 10 + 50 + 250

Private Sub Form_Activate()


Dim n As Integer, C1 As Integer, C2 As Integer, S As Integer
Print "SERIE (n) = 2 + 10 + 50 + 250 + 1250 +..."
n = InputBox("Digite N", "SERIES POR ENUMERACIÓN")
C1 = 1
C2 = 2
S = 0
While C1 <= n
S = S + C2
C1 = C1 + 1
C2 = C2 * 5
Wend
Print "LA SUMA DE LOS PRIMEROS "; n; " TÉRMINOS ES= "; S
End Sub
Programando en Visual Basic 36

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.

Ejemplo 12) Digitalizar un número entero por la derecha.

Private Sub Form_Activate()


N = InputBox("Digite N", "DIGITALIZACIÓN")
Print N
While N <> 0
D = N Mod 10
N = N \ 10
Print D
Wend
End Sub

Ejemplo 13) Invertir un número entero

Private Sub Form_Activate()


N = InputBox("Digite N", "DIGITALIZACIÓN")
Print N
INV = 0
While N <> 0
D = N Mod 10
N = N \ 10
INV = INV * 10 + D
Wend
Print "El Número invertido es: "; INV
End Sub

Ejemplo 14) Contar los dígitos impares

Private Sub Form_Activate()


N = InputBox("Digite N", "DIGITALIZACIÓN")
Print N
C = 0
While N <> 0
D = N Mod 10
N = N \ 10
If D Mod 2 = 1 Then C = C + 1
Wend
Print "La cantidad de dígitos impares que tiene es: "; C
End Sub
Programando en Visual Basic 37

Ejemplo 15) Digitalizar un número natural por la izquierda

Private Sub Form_Activate()


N = Val(InputBox("Digite N", "DIGITALIZACIÓN"))
L = Len(N)
Print N
For C = L - 1 To 0 Step -1
D = N \ 10 ^ C
N = N Mod 10 ^ C
Print D
Next C
End Sub

Ejemplo 16) Digitalizar un número entero por la izquierda

Private Sub Form_Activate()


N = Val(InputBox("Digite N", "DIGITALIZACIÓN"))
Print N
L = Int(Log(Abs(N)) / Log(10))
For C = L To 0 Step -1
D = N \ 10 ^ C
N = N Mod 10 ^ C
Print D
Next C
End Sub
Programando en Visual Basic 38

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.

 Arrays estáticos, cuya dimensión es siempre la misma.


 Arrays dinámicos, cuya dimensión se puede modificar durante la ejecución del programa.

1.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(9) As Double

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.

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 5) As String


Programando en Visual Basic 40

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.

1.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)
...
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

Ejemplo 1) Leer y mostrar un Vector Estático

Private Sub Form_Activate()


Dim VEC(1 To 20) As Integer
N = InputBox("DIGITE N", "VECTORES")
For c = 1 To N
VEC(c) = InputBox("INTRODUZCA ELEMENTO", c)
‘usamos c para mostrar la posición
Next c
Print "VEC = ";
For c = 1 To N
Print VEC(c);
Next c
End Sub
Programando en Visual Basic 42

Ejemplo 2) Leer y mostrar un Vector Dinámico

Private Sub Form_Activate()


Dim n As Byte
Dim c As Byte
Dim vec() As Long
n = InputBox("DIGITE CANTIDAD DE ELEMENTOS", "VECTORES")
ReDim vec(n - 1)
'ReDim Preserve vec(UBound(vec, n-1) + 5)
For c = 0 To n - 1
vec(c) = InputBox("DIGITE VALORES PARA EL VECTOR", "VECTORES")
Next c
Print "VEC= ";
For c = 0 To n - 1
Print Spc(1); vec(c); Spc(1);
Next c
End Sub

Ejemplo 3) Hallar el promedio de los elementos de un vector

Private Sub Form_Activate()


Dim vec(1 To 20) As Integer
n = InputBox("INTROUZCA TAMAÑO DEL VECTOR", "VECTORES")
For c = 1 To n
vec(c) = InputBox("DIGITE ELEMENTOS DEL VECTOR", c)
Next c
Print "VEC = ";
For c = 1 To n
Print vec(c);
Next c
p = 0
For c = 1 To n
p = p + vec(c)
Next c
p = p / n
Print
Print "El Promedio es = "; p
End Sub
Programando en Visual Basic 43

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

Donde: 1 2 3 ... M COLUMNAS

MAT(1,3) contiene 4
MAT(2,M) contiene 1
MAT(3,2) contiene 7
MAT(N,1) contiene 9

Ejemplo 4) Leer y mostrar una matriz

Private Sub Form_Activate()


Dim f As Integer, c As Integer, n As Integer, m As Integer
Dim MAT(1 To 100, 1 To 100) As Long
n = InputBox("DIGITE # DE FILAS", "MATRICES")
m = InputBox("DIGITE # DE COLUMNAS", "MATRICES")
For f = 1 To n
For c = 1 To m
MAT(f, c) = InputBox("DIGITE VALORES PARA LA MATRIZ", "MATRICES")
Next c
Next f
For f = 1 To n
For c = 1 To m
Print MAT(f, c); Spc(1);
Next c
Print
Next f
End Sub
Programando en Visual Basic 44

Ejemplo 5) Contar cuantos nulos existen en una matriz

Private Sub Form_Activate()


Dim f As Integer, c As Integer, n As Integer, m As Integer
Dim MAT(1 To 100, 1 To 100) As Long, cont As Integer
n = InputBox("DIGITE # DE FILAS", "MATRICES")
m = InputBox("DIGITE # DE COLUMNAS", "MATRICES")
For f = 1 To n
For c = 1 To m
MAT(f, c) = InputBox("DIGITE VALORES PARA LA MATRIZ", "MATRICES")
Next c
Next f
For f = 1 To n
For c = 1 To m
Print MAT(f, c); Spc(1);
Next c
Print
Next f
cont = 0
For f = 1 To n
For c = 1 To m
If MAT(f, c) = 0 Then cont = cont + 1
Next c
Next f
Print "Existen "; cont; "Nulos"
End Sub
Programando en Visual Basic 45

3.1. RECORRIDO DE MATRICES

Consiste en llenar las matrices de manera secuencial con el uso de contadores, en este caso en particular
adecuamos al uso de matrices cuadradas.

Ejemplo 6) Llenar la matriz

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

Ejemplo 7) Llenar la matriz

5 10 15 20 25 5,1 5,2 5,3 5,4 5,5


4,1 4,2 4,3 4,4 4,5
4 9 14 19 24 3,1 3,2 3,3 3,4 3,5
3 8 13 18 23 2,1 2,2 2,3 2,4 2,5
2 7 12 17 22 1,1 2,1 1,3 1,4 1,5
1 6 11 16 21
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 c = 1 To n
For f = n To 1 step -1
MAT(f, c) = cont
cont = cont + 1
Next f
Next c
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 47

Ejemplo 8) Llenar la matriz

1 1,1 2,1 3,1 4,1 5,1


2,2 3,2 4,2 5,2
2 3 3,3 4,3 5,3
4 5 6 4,4 5,4
7 8 9 10 5,5
11 12 13 14 15
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 f
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

También podría gustarte