ARREGLOS MULTIDIMENSIONALES

ARREGLOS MULTIDIMENSIONALES (TRIDIMENCIONAL) Este también es un tipo de dato estructurado, que está compuesto por n dim

Views 159 Downloads 1 File size 628KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ARREGLOS MULTIDIMENSIONALES (TRIDIMENCIONAL)

Este también es un tipo de dato estructurado, que está compuesto por n dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índices, uno para cada dimensión Para determinar el número de elementos en este tipo de arreglos se usan las siguientes fórmulas: RANGO (Ri) = lsi - (lii + 1) No. TOTAL DE ELEMENTOS = R1 * R2* R3 * ...* Rn Donde:

i = 1 ... n n = No. total de dimensiones Para determinar la dirección de memoria se usa la siguiente formula: LOC A[i1,i2,i3,...,in] = base(A) + [(i1-li1)*R3*R4*Rn + (i2li2)*R3*R2*... (in - lin)*Rn]*w

ARREGLOS

    

El arreglo es un tipo estructurado de dato, el cual es capaz de almacenar una colección de datos del mismo tipo. Es la estructura de datos más utilizada por los programadores Es la forma más simple de agrupar componentes de un mismo tipo y asociarles un número de orden de cada componente llamado índice. Los arreglos en C, se almacenan en posiciones contiguas de memoria Posee un tamaño

CONCEPTOS BÁSICOS. Los arreglos multidimensionales tienen más de una dimensión. Las dimensiones se manejan por medio de un par de corchetes, dentro de los que se escriben los valores de cada dimensión, separados por comas.

EL ARREGLO TRIDIMENSIONAL

El arreglo tridimensional o de tres dimensiones, está formado por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre y que, al igual que en los unidimensionales y bidimensionales, se diferencian por la posición que tiene cada elemento dentro del arreglo de datos, con la aclaración de que la disposición de los elementos es una combinación del arreglo unidimensional y bidimensional.

La primera dimensión se podría esquematizar como el arreglo unidimensional, un conjunto de elementos; la segunda y tercera dimensión es un arreglo de dos dimensiones que constituye a cada elemento de la primera dimensión tridimensional de tipo entero. Como podemos observar lo que antes era una mísera lista se va convirtiendo en un cubo de impresionantes proporciones. Ahora tenemos tres índices con los que acceder a los datos X,Y,Z. La forma en la accedemos y almacenamos datos en esta matriz puede parecernos un poco abstracta, lo que hacemos es acceder a la intersección de los tres índices. Al ser tridimensional tenemos que tomarnos los índices como coordenadas que nos dan un punto fijo, y es ese punto el que nuestra maquina va a reconocer como el valor global.

Un arreglo de tres dimensiones se podría leer como un arreglo de matrices, es decir, un arreglo compuesto por X elementos , donde cada elemento es un arreglo de M x N de dos dimensiones esquemáticamente: 3 era dimensión

SEGUNDA DIMENSION

COLUMNAS 0

ELEMENTO 0

1

2

3

4

REGION 0 REGION 1 REGION 2 REGION 3 REGION 4

primera dimensión ELEMENTO 1 primera dimensión ELEMENTO 2 primera dimensión ELEMENTO 3 primera dimensión

OPERACIONES: Para manejar un arreglo, las operaciones a efectuarse son:    

Declaración del arreglo, Creación del arreglo, Inicialización de los elementos del arreglo, y Acceso a los elementos del arreglo.

A continuación, describiremos cada una de estas operaciones

A. DECLARACIÓN La sintaxis para declarar un multidimensional(TRIDIMENCIONAL) es la siguiente: [ , ...] < identificador > ; Donde:

arreglo

Tipo indica el tipo correspondiente a los elementos del arreglo, Identificador es el nombre del arreglo, y el par de corchetes, la coma y las diéresis, [ , ...], representan las dimensiones del arreglo. Los corchetes encierran todas las comas necesarias para separar las dimensiones del arreglo. Ejemplos: int [ , , ] tridim ; // Tres dimensiones. Observe que, en la declaración, el espacio entre los corchetes está vacío. Esto se debe a que, durante dicha operación, no se reserva espacio en la memoria.

B. CREACIÓN. La creación de un arreglo multidimensional (TRIDIMENCIONAL) consiste en reservar espacio en la memoria para todos sus elementos, utilizando la siguiente sintaxis: < identificador > = new [ dim1, dim2 ... dimN ] ; Donde: new es el operador para gestionar espacio de memoria, en tiempo de ejecución, dim1, dim2, dimN son valores enteros que representan las dimensiones del arreglo. El tamaño del arreglo es el resultado de multiplicar los valores de las dimensiones y representa el número de elementos del arreglo. Ejemplos: tridim = new int[ 2, 3, 4] ; Las operaciones de declaración y creación anteriores se pueden agrupar en una sola instrucción, como se muestra enseguida: int [ , , ] tridim = new int[2, 3, 4] ;

C. INICIALIZACIÓN

Un arreglo es un objeto que, cuando es creado por el compilador, se le asignan automáticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios:    

Si el tipo del arreglo es numérico, a sus elementos se les asigna el valor cero. Si el tipo del arreglo es char, a sus elementos se les asigna el valor '\u0000'. Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false. Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.

Cuando se requiere asignar valores iniciales diferentes de los predeterminados, es posible agrupar las operaciones de declaración, creación e inicialización en una sola instrucción, por ejemplo: int [ , , ] tridim={{{12, 59, 70, 45} , {20, 16, 29, 48} , {93, 75, 43, 10}}, {{44, 72, 30, 24} , {60, 89, 39, 61} , {99, 52, 34, 47}}};

D. ACCESO Se puede acceder a los valores de los elementos de un arreglo bidimensional(tridimensional) a través del nombre del arreglo y dos subíndices. Los subíndices deben escribirse entre corchetes y representa la posición del elemento en el arreglo. Así, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y los subíndices del elemento entre corchetes. Los valores de los subíndices empiezan en cero para el primer elemento, hasta el tamaño del arreglo menos uno.

E. APLICACIONES. Se necesita manejar, en un arreglo, la posición todos los caracteres escritos en una enciclopedia. El arreglo deberá tener las siguientes dimensiones:    

Una para manejar el renglón en la página, otra para la columna en la página, otra para la hoja en el volumen y otra para el volumen en la enciclopedia.

Cada página tiene Cada volumen tiene La enciclopedia tiene 18 volúmenes.

80 500

columnas. páginas.

El siguiente fragmento de programa implementa la solución a este problema. char car; // Declara y crea el arreglo. char[ , , , ] enciclopedia = new char [18,500,80] ; // Lee, desde el teclado, cada carácter para la enciclopedia. for(int v = 0 ; v < 18 ; v++) // Volumen for(int p = 0 ; p < 500 ; p++) // Página for(int c = 0 ; c < 80 ; c++) // Columna { car = (char)Console.Read( enciclopedia[v,p,c] = car ;

)

} DEFINICIÓN DEL ARREGLO TRIDIMENSIONAL Como ya lo hemos mencionado al definir un arreglo es necesario hacerlo como una variable por lo cual en la parte de declaración de variables se utiliza el siguiente formato:

NomVar: Arreglo [primeraDim][segundaDim][terceraDim] TIPO DE DATO En donde: NomVar: es el nombre de la variable. Arreglo: indica que es un arreglo PrimeraDim: indica la cantidad de elementos de la primera dimensión. SegundaDim: indica la cantidad de elementos de la segunda dimensión del arreglo. TerceraDim: indica la cantidad de elementos de la tercera dimensión del arreglo. Tipo de dato: es el tipo de dato de los elementos del arreglo. Ejemplo

;

Números: Arreglo [4][5][5] ENTERO Números Es un arreglo de tres dimensiones: de 4 elementos de 5x5, es decir, un arreglo de 4 elementos, cada uno de los cuales es una matriz de 5x5. MANEJO DE LOS ELEMENTOS DEL ARREGLO TRIDIMENSIONAL Para relacionar cada elemento individual de un arreglo de tres dimensiones se usan tres subíndices; el primero indica la primera dimensión del elemento, el segundo la segunda dimensión y el tercero la tercera dimensión, como sigue: NomVar[primera][segunda][tercera] En donde Primera: indica el número de elemento en la primera dimensión Segunda: indica el número de elemento en la segunda dimensión Tercera: indica el número de elemento de la tercera dimensión. NOTA los subíndices pueden ser constantes, variables o expresiones de tipo entero. Al igual que toda la variable, una de tipo arreglo tridimensional puede usarse para leer datos, asignarle valores mediante expresiones aritméticas, imprimir su contenido etc. EJEMPLOS NomVar [2][3][4]= 50 Leer nomVar [2][2][3] Leer nomVar [1][1][3] NomVar [1][1][4]= NomVar [2][2][3] +NomVar [1][1][3] +NomVar [2][3][4] Imprimir NomVar [1][1][4]

Ejemplo matriz 3D: Supongamos que queremos guardar un dato en la posición [x=2][y=5][z=3]; la representación gráfica de donde se guardaría este dato seria la imagen de la que se observa más abajo, como podemos ver se almacena en la intersección entre los tres puntos que en este caso esta dibujado como un triángulo. El valor que le vamos a asignar es 10, por lo tanto, es tan sencillo como escribir en nuestro compilador: MATRIZ [2][5][3]=10.

PROGRAMAS DE LENGUAJE JAVA

EJEMPLO ELABORAR UN ALGORITMO QUE LEA NÚMERO.ENTEROS DE TIPO ENTERO PARA UN ARREGLO COMO EL ESQUEMATIZADO LÍNEAS ANTES, ES DECIR, UN ARREGLO DE 4X5X5 , Y LOS IMPRIMA. Algoritmo ARREGLO TRIDIMENCIONAL Clase ArregloTresDim1 1. Método principal () a. Declarar variables Números: Arreglo [4][5][5] :entero Prim,segu,terc:entero b. For prim=0;prim