Colecciones de datos. Matrices
Cuando los datos individuales se presentan asociados por algún criterio y son relativamente numerosos, parece conveniente agruparlos para facilitar su manejo. Esta función la cumplen las matrices.
La declaración de una matriz no es demasiado diferente de la declaración de una variable, salvo por añadir un paréntesis tras el nombre que, además de identificarla como matriz, indica el número de elementos con que se declara:
Dim mAlumnado(5) As String
Bueno, más que el número, el límite superior de los elementos que la conforman, ya que, salvo indicación específica, las matrices se inician en OOo Basic con el índice 0, con lo que una matriz(4) contiene las posiciones identificadas por los índices 0 - 1 - 2 - 3 - 4 (total, 5 elementos)
Para dotar de contenido a una matriz disponemos de varias opciones:
Introducirlo directamente, empleando el índice como referencia
mAlumando(0) = "Juana López Suárez"
- Hacer que sean el resultado del procesamiento de datos preexistentes
mAlumnado(0) = sNombre & " " & sApellidos
- Introducirlos externamente o capturarlos de una fuente de datos mediante algún procedimiento de input
mAlumnado(0) = InputBox ("Nombre y apellidos del alumno :")
Pero también podemos introducirlos directamente como una lista mediante la [función Array()], separando cada elemento con una coma.
mAlumnado = Array("Juana López Suárez", "Antonio Martínez Núñez", "Casimiro Rodríguez Fernandez", "Ana Martínez Sanz", "Susana García Méndez")
Esta función es de gran utilidad cuando deseamos introducir directamente los datos de la matriz, ya que evita tener que identificar cada elemento, uno a uno. Otra ventaja de la función Array() es que nos permite introducir un número de elementos diferente del establecido en la declaración de la matriz, lo que la redimensiona de forma automática.
En relación con lo anterior, hasta el momento hemos hablado de matrices de dimensiones conocidas, lo que supone de sabemos dónde empiezan (mAlumnado(0)) y dónde terminan (mAlumnado(4)); pero es posible que, en script complejos si usamos la función Array(), o cuando capturamos datos externos, no sepamos a priori ni dónde empieza ni donde termina una matriz, especialmente dónde termina. Para estas situaciones son de gran utilidad las [funciones LBound() y UBound()]:
LBound(mAlumnado()) nos devuelve el índice con el que inicia la matriz
Y UBound(mAlumnado()) nos devuelve su índice de finalización.
Dado que la variación del tamaño de una matriz es una maniobra relativamente frecuente, OOo Basic dispone de dos funciones que nos permiten realizar esta tarea de forma sencilla: mediante las [instrucciones ReDim y Preserve]. La primera redimensiona la matriz y la segunda permite mantener el contenido previo.
Sobre todas estas cuestiones hablaremos en posteriores entradas, aunque puedes adelantarte accediendo a su contenido mediante los enlaces que incluyo en la actual, que sirve introducción.
No hay comentarios:
Publicar un comentario
Comenta esta entrada