Arreglos multidimensionales: Tablas

Una tabla en un array bidimensional. La primera dimensión indica el número de filas y el segundo el número de columnas.

Definir tabla como Entero;
Dimension tabla[3,4];

Hemos definido una tabla de enteras con 3 filas y 4 columnas, por tanto tenemos 12 elementos.

Para acceder a cada uno de lo elemento tenemos que indicar la fila y la columna en la que se encuentra, siempre empezando por el 0. Por ejemplo para inicializar el elemento que esta en la primera fila y la segunda columna sería:

tabla[0,1] <- 10;

El acceso a un elemento que no existe producirá un error.

Recorrido de una tabla

Para recorrer todos los elementos de una tabla necesitamos utilizar dos bucles anidados. Normalmente el exterior nos va a permitir recorrer las filas y el interior las columnas. Por ejemplo para inicializar todos los elementos a 0, quedaría:

Para filas<-0 hasta 2 Hacer
	Para columnas<-0 hasta 3 Hacer
		tabla[filas,columnas]<-0;
	FinPara
FinPara

De forma similar podríamos recorrer la tabla para mostrar los elementos:

Para filas<-0 hasta 2 Hacer
	Para columnas<-0 hasta 3 Hacer
		Escribir tabla[filas,columnas];
	FinPara
FinPara

Ejemplo

Inicializar una tabla con los números del 1 al 5, sus cuadrados y sus cubos. Por lo tanto tenemos que definir una tabla con 5 filas y 3 columnas. Muestra los datos:

Proceso CuadradoCubos
	Definir tabla Como Entero;
	Definir filas,columnas Como Entero;
	Dimension tabla[5,3];
	Para filas<-0 hasta 4 Hacer
		tabla[filas,0]<-filas+1;
		tabla[filas,1]<-(filas+1)^2;
		tabla[filas,2]<-(filas+1)^3;
	FinPara
	
	Para filas<-0 hasta 4 Hacer
		Para columnas<-0 hasta 2 Hacer
			Escribir Sin Saltar tabla[filas,columnas]," ";
		FinPara
		Escribir "";
	FinPara
FinProceso

Arrays multidimensionales

Los arrays pueden ter las dimensiones que deseemos, por ejemplo podemos tener una array de tres dimensiones:

Definir tabla como Entero;
Dimension tabla[4,4,4];

Y podríamos inicializar el primer elemento como:

tabla[0,0,0]<-10;

Necesitaríamos tres bucles para recorrer un array de tres dimensiones:

Para i<-0 hasta 2 Hacer
	Para j<-0 hasta 2 Hacer
		Para k<-0 hasta 2 Hacer
			tabla[i,j,k]<-0;
		FinPara
	FinPara
FinPara