lunes, 27 de agosto de 2012

2.0 ARREGLOS MULTIDIMENSIONALES REPRESENTADOS EN ARREGLOS UNIDIMENSIONALES



Las computadoras no pueden almacenar directamente un arreglo multidimensional, su representación en memoria debe ser lineal, donde a cada elemento le sigue un único elemento, mediante el bloque de posiciones sucesivas. 

Que queremos decir en las líneas anterior; es decir, por ejemplo tenemos un arreglo bidimensional A de m x n elementos, mediante un bloque de m X n posiciones sucesivas, es decir la distribución de los elementos de dicho arreglo se harán de forma lineal en la memoria de la computadora.

2.1 Ordenación de Elementos de un arreglo Bidimensional en arreglo Unidimensional.

La distribución de elementos se puede realizar de dos formas diferente, las cuales veremos a continuación.

 2.1.1 Ordenación por renglones (Renglón a renglón)

Esta ordenación consiste en ir tomando los valores del arreglo bidimensional, fila por fila y luego irlos insertando en cada casilla o posición del vector unidimensional.
Supongamos que tenemos el siguiente arreglo bidimensional:
Array Notas [5,4]




10
8
9
8
10
5
6
6
4
5
8
9
10
2
3
3
1
5
8
9

Fig. 2.1


La ordenación por reglón en un arreglo unidimensional nos quedaría:

10
8
9
8
10
5
6
6
4
5
8
9
10
2
3
3
1
5
8
9
Fig. 2.2

Una vez almacenados los valores de manera lineal se requiere de una fórmula que nos proporcione la posición en el arreglo unidimensional que le corresponde a cada elemento del arreglo bidimensional original.
La fórmula es: 





Formula 2.1
Dónde: 

LOC(A [i,j]): La posición del elemento a localizar
POSINI: La posición inicial del arreglo unidimensional a partir de la cual se empiezan almacenar los elementos.
n: el número de columnas que posee el arreglo bidimensional
i y j: Indican el renglón y columna , respectivamente , de la posición del elemento que se quiere ubicar.
Así, aplicando la fórmula 2.1 a nuestro arreglo de la figura 2.1, si deseamos localizar el elemento A [3,3], lo haríamos:
Supongamos que posini es = 1
A [3,3] = 1 + 4 * (3-1) + (3-1) = 1+4 * (2) + (2)
= 1 + 4(2) + 2 =  11
 LOC A [3,3] = 11.

2.1.2 Ordenación por Columnas (Columna por columna)

Esta ordenación consiste en ir tomando los valores del arreglo bidimensional, columna por columna y luego irlos insertando en cada casilla o posición del vector unidimensional.



Tomando de referencia el arreglo bidimensional de la Fig. 2.1, un arreglo unidimensional nos quedaría de la siguiente manera, si ingresamos los valores por columna.

10
10
4
10
1
8
5
5
2
5
9
6
8
3
8
8
6
9
3
9

Fig. 2.3

Al igual que la ordenación por renglones, necesitamos de una fórmula que nos proporcione la posición en el arreglo unidimensional que le corresponde a cada elemento del arreglo bidimensional original. Dicha fórmula es: 


 




Formula 2.2
Dónde:
LOC(A [i,j]): La posición del elemento a localizar
POSINI: La posición inicial del arreglo unidimensional a partir de la cual se empiezan almacenar los elementos.
m: el número de filas que posee el arreglo bidimensional
i y j: Indican el renglón y columna , respectivamente , de la posición del elemento que se quiere ubicar.
Ahora apliquemos la fórmula 2.2 para nuestro arreglo de la figura 2.1.
Localicemos la posición: A [4,2], POSINI= 1
A [4,2]=  1 +  5 * (2-1) + (4-2)
= 1 + 5(1) + 2 = 1 + 6 +2 = 9
LOC A [4,2] = 9

A continuacion una explicación breve en video para los arreglos:
 



Mas información, puedes descargar:

https://dl.dropbox.com/u/90414787/Metodos_de_Progra_I/arreglosunidimensionalesybidimensionales.docx














  









No hay comentarios:

Publicar un comentario