next up previous contents
Siguiente: Arreglos como argumentos de Subir: Arreglos Anterior: Cálculo del tamaño de   Índice General

Arreglos multidimensionales

El término dimensión representa el número de índices utilizados para referirse a un elemento particular en el arreglo. Los arreglos de más de una dimensión se llaman arreglos multidimensionales.

/*
/ dosDim.cpp
*/

#include <iostream>
#define numFilas 4
#define numColumnas 5

int main (int argc, char * const argv[]) {
    int despFila, despColumna, desplazamiento, multiplo,
	despCalculados[numFilas][numColumnas];
	
	for(despFila=0;despFila<numFilas;despFila++)
		for(despColumna=0;despColumna<numColumnas;despColumna++){
			desplazamiento=numColumnas-despColumna;
			multiplo=despFila;
			despCalculados[despFila][despColumna]=
				(despFila+1)*despColumna+desplazamiento * multiplo;
		};
	for(despFila=0;despFila<numFilas;despFila++){
		std::cout<<"Fila actual: "<<despFila<<"\n";
		std::cout<<"Distancia relativa desde la base: "<<"\n";
		for(despColumna=0;despColumna<numColumnas;despColumna++)
			std::cout<<"  "
				<<despCalculados[despFila][despColumna]
				<<"   ";
		std::cout<<"\n\n";
	}
	
    return 0;
}
}

El programa utiliza dos ciclos for para calcular e inicial cada uno de los elementos del arraglo a su respectiva distancia relativa desde la base. El arreglo creado tiene 4 filas y 5 columnas por fila, haciendo un total de 20 elementos enteros.

Los arreglos multidimensionales son almacenados de forma lineal en la memoria de la computadora. Los elementos en los arreglos multidimensionales están agrupados desde el índice más a la derecha hacia el centro. En el ejemplo anterior, fila 1, columna 1 sería el elemento 3 del arreglo almacenado. Aunque el cálculo del desplazamiento aparece un poco difícil, es referenciado fácilmente cada elemento del arreglo.

La salida del programa anterior es:

Fila actual: 0
Distancia relativa desde la base: 
  0     1     2     3     4   

Fila actual: 1
Distancia relativa desde la base: 
  5     6     7     8     9   

Fila actual: 2
Distancia relativa desde la base: 
  10     11     12     13     14   

Fila actual: 3
Distancia relativa desde la base: 
  15     16     17     18     19   

dosdim has exited with status 0.



Abdiel Caceres-Gonzalez Jun-02-2005