MATRICEZ

Dos estructuras de datos fundamentales son las conocidas
como: matriz (o array) y registro (o estructura).

Son de uso frecuente, por lo que son elementos
imprescindibles en la programación de muchos problemas.

Por ejemplo, las notas correspondientes a las distintas
evaluaciones realizadas a cada uno de los alumnos de un
determinado curso forman una matriz, y la ficha que contiene
los datos personales de cada uno de estos alumnos es un
ejemplo de registro (o estructura).
Matrices
Una matriz (array en inglés) es un conjunto de elementos
contiguos, todos del mismo tipo, que comparten un nombre
común y a los que es posible acceder mediante la posición
(índice) que ocupa cada uno de ellos en la matriz, como un
vector o una matriz en Álgebra.

Esta disposición permitirá escribir código más simple, ya que
será posible establecer bucles en los que se recorra los
elementos de una matriz mediante el número de índice.

A las matrices de una dimensión se les suele llamar también
vectores o listas, y a las matrices de dos dimensiones, tablas.
La representación de las matrices se hace mediante
variables con subíndices. Los subíndices son números
enteros consecutivos y, por defecto, el primer índice valdrá
0.

Una matriz de dos dimensiones se representa con una
variable con dos subíndices (filas, columnas). Una de tres
con tres, etcétera.

Para formar el nombre de una matriz y definir su tipo, se
siguen las mismas reglas que para las variables:

Dim a(24) As Integer ´matriz de enteros, 1 dimensiones.
Dim c(12,5) As String ´matriz de cadenas, 2 dimensiones.

Declaración de matrices
La declaración de una matriz especifica el nombre de la
matriz, el número de elementos de la misma y el tipo de éstos:

donde:
• variable es el nombre de la matriz.
• dimension es una lista de expresiones numéricas, separadas por comas y que definen las dimensiones de la matriz. Esta lista puede ser de la forma:

[inferior To] superior [, ...

• tipo define el tipo de la variable (Integer, Long, String, etc.)

Ejemplos de declaración de matrices
Lista o vector de 60 enteros, indexados del 0 al 59:
Dim temp(59) As Integer
Lista o vector de 60 enteros, indexados del 1 al 60:
Dim temp(1 To 60) As Integer
Lista o vector de 60 cadenas de caracteres de longitud fija 40:
Dim temp(1 To 60) As String * 40
Tabla de 10 * 10 elementos de tipo Double:
Dim a(9,9) As Double
Dim a(1 To 10, 1 To 10) As Double
Dim a(-5 To 4, 2001 To 2010) As Double


Ejemplo de manipulación de matrices

Const n = 12
Dim A(1 to n) As Double ´matriz de n elementos
Dim i As Integer

´Bucle For para Rellenar la matriz “a” con datos.
For i = 1 To n
A(i) = InputBox(“Introduce el elemento” & i & “ de A”)
Next i

´Bucle For para Visualizar la matriz con Print
For i = 1 To n
MsgBox A(i)
Next i
Matrices dinámicas

Una matriz dinámica, a diferencia de las anteriores, puede ser
redimensionada en cualquier momento de la ejecución del programa.

Para crear una matriz dinámica, primero hay que declararla como si
fuera una matriz estática (con Dim), pero sin darle dimensión.

Para reasignar dinámicamente el número de elementos se utiliza la
sentencia ReDim. No es posible cambiar el número de dimensiones
de la misma, sólo los tamaños de cada dimensión.

Cada vez que se ejecuta ReDim, todos los valores previamente
almacenados se pierden.

Para cambiar el tamaño conservando los valores hay que utilizar la
palabra clave Preserve, en cuyo caso no es posible cambiar el/los
índice/s inferior/es, sólo el superior.


Ejemplo de manipulación de matrices dinámicas
Dim m() As Double 'declaracion de matriz dinamica
Dim filas As Integer, columnas As Integer
Dim i As Integer, j As Integer

'consulto al usuario el tamaño de la matriz
filas = InputBox("Nº filas de la matriz:")
columnas = InputBox("Nº columnas de la matriz:")
ReDim m(1 To filas, 1 To columnas) 'redimensiono la matriz
'Leo los datos
For i = 1 To filas
For j = 1 To columnas
m(i, j) = InputBox("m(" & i & ", " & j & ") = ")
Next j
Next i

No hay comentarios:

Publicar un comentario