Tenemos otra estructura, fuertemente basada en la idea matem�tica de matriz, y que tiene el mismo nombre: matriz (o "array", para quien le guste m�s el ingl�s). Una matriz representa la idea de "tabla": una disposici�n de la informaci�n en forma de filas y columnas. Por ejemplo:
[ 3 -4.5 0.1 ] [ 4.1 2 -1 ]
En este ejemplo tenemos una matriz formada por dos filas y tres columnas. El elemento de la posici�n (2,3) (fila 2, columna 3) es el -1.
Podemos entender las matrices como vectores cuyas componentes son vectores. De hecho, en casi todos los lenguajes de programaci�n, esto es as�. Seg�n este punto de vista, la matriz del primer ejemplo es un vector de dos elementos: el primero, el vector [ 3 -4.5 0.1 ], y el segundo, el vector [ 4.1 2 -1 ].
Para declarar una variable de tipo matriz escribiremos:
m: Array[1..N,1..M] de Tipo;
siendo N el n�mero de filas que tendr� la matriz, y M el n�mero de columnas. Para referirnos a la posici�n (i,j), usaremos la nomeclatura m[i,j]. Por ejemplo:
m: Array[1..3,1..5] de Entero; m[2,3] <- 4; m[1,5] <- -2;
No perder de vista la declaraci�n de una matriz: puede contener elementos de cualquier tipo. Enteros, reales, cadenas de caracteres, o tipos definidos por el usuario (estos los estudiamos en el cap�tulo siguiente).
Recorrer los elementos de una matriz requiere de un bucle dentro de otro bucle. �Por qu�? Pues porque, para cada fila que recorramos, tendremos que recorrer cada elemento de las columnas. As�, empezaremos entrando en la fila 1, y dentro de la fila 1 recorreremos los elementos 1 a M de que constan las columnas. Hecho esto, pasamos a la fila 2, y dentro de la fila 2 volvemos a recorrer los elementos 1 a M de las columnas. Siguiendo este proceso, acabaremos recorriendo todos los elementos de la matriz.
Por ejemplo, para sumar dos matrices (en el sentido matem�tico, teniendo en cuenta que entonces ser�n de tipo num�rico), tendremos que ir elemento a elemento sumando los valores que se encuentren en las posiciones (i,j). Es obvio que la suma de dos matrices s�lo tiene sentido cuando las matrices a sumar tienen el mismo n�mero de filas y de columnas.
Una algoritmo sencillo para sumar dos matrices, almacenando su suma en una tercera, ser�a:
desde i <- 1 hasta i = N hacer desde j <- 1 hasta j = M hacer C[i,j] <- A[i,j] + B[i,j]; fin desde fin desde
An�logamente realizar�amos la resta.
Tenemos una clara aplicaci�n de las matrices en el mundo de la programaci�n gr�fica. Las transformaciones de los puntos pueden representarse en t�rminos de unas ciertas matrices, y obtener la transformaci�n de un punto (una rotaci�n, una traslaci�n o un cambio de escala) consiste sencillamente en multiplicar las coordenadas del punto por la matriz correspondiente.