Академический Документы
Профессиональный Документы
Культура Документы
Si lo miramos así, casi parece hasta divertido, pero debemos tener en cuenta un par de puntos:
Todas las variables que tenemos en nuestra matriz serán de un mismo tipo
Añadir, eliminar y modificar elementos de la matriz no es tarea sencilla
De hecho, un array o matriz no es ni más ni menos que una “tabla” de variables, en la que
cada variable almacenada ocupará una “celda” de dicha tabla.
Ahora, una vez dicho esto, ¿por qué no podemos empezar con un ejemplo?
Necesitamos almacenar, por ejemplo, los números que ha introducido un usuario en el juego
típico de adivinar el número mayor y menor. No vamos a entrar aquí en el juego en sí, pero sí
que nos vamos a preocupar de almacenar los datos que ha ido introduciendo el jugador.
Nota: Es posible que se “incumpla” alguna regla básica de programación, pero el ejemplo está
enfocado, principalmente a entender el tema, así que no me preocupo de más.
Damos por supuesto que sólo vamos a crear la rutina que almacene los números que ha
introducido el “jugador”. Damos por supuesto que hemos creado una pequeña aplicación que
siempre pierde, puesto que, en vez de pedir números al usuario, tan sólo se limita a generar
una serie de números aleatorios y, ni tal siquiera los comprueba.
Option Explicit
Option Base 0
Sub InicioJuego()
Dim contador As Integer
Dim NumeroIntroducido As Integer
En VBA o en VB podemos hacer que este comportamiento quede alterado con la instrucción que
puede observarse al principio del código:
Option Base 0
Option Base puede adoptar los valores de 0 ó 1, dependiendo de si queremos que el primer
elemento de la “tabla”, es decir, de la matriz sea 0 ó 1. Es aconsejable empezar a
acostumbrarse a trabajar con el 0 (amén de los inconvenientes que podamos encontrarle),
puesto que la inmensa mayoría de los lenguajes de programación no contemplan un
dimensionado de matrices con un primer elemento 1 (incluidas las nuevas versiones de
VB.NET).
Dimensionando matrices
La dimensión de una matriz se asemeja mucho a la de cualquier variable:
Podemos fijarnos que he creado una matriz de 10 “casillas” o elementos, puesto que si tenemos
en cuenta el punto anterior, la primera posición es NumerosJugados(0) y, por supuesto, la
última NumerosJugados(9).
En principio, en esta primera entrega, vamos a dejar que el tamaño de la matriz será estático y
que necesitaremos “estudiar” mucho más para poder variarlo.
Variable(indice)=valor
El bucle siguiente permite repetir una serie de acciones un máximo de veces estipulado en
MAX_INTENTOS, que es el número máximo de intentos que, en teoría, permitimos al jugador.
He sustituido la típica petición de números al usuario por una generación de números pseudos-
aleatorios, gracias a la línea:
De esta manera, sin importar tampoco ahora si se validan o no estos números (en la función
siempre devuelvo un valor False, así que nunca se acierta, pero queda para poder acabar el
juego en el futuro), lo importante es cómo almacenamos estos valores en la matriz:
Tal como se decía al principio del tema, almacenar datos en una matriz es similar a guardarlos
en una variable, pero añadiendo el índice de la “tabla”.
Podemos observar que no tiene más secreto que la precaución de no sobrepasar los límites de
la matriz.
No pasa nada. De hecho, VBA tiene un par de funciones la mar de simpáticas que nos
devuelven el rango inferior y superior de una matriz. Con estas funciones, el bucle del punto
anterior podría quedar como:
Lbound nos devolverá el índice inferior de la matriz y Ubound su homónimo, es decir, su índice
superior.