Sunday, February 8, 2015

Arreglos Codigo 3 Direcciones

ARREGLOS EN CODIGO 3D

Para el siguiente arreglo: ARR[4 (filas), 5 (columnas)]. Asumiendo que tenemos informacion en las primeras 2 filas de la forma (Donde el par de numeros corresponde a fila,columna(11= fila 1, columna 1): {{11, 12,13,14,15},{21,22,23,24,25}}. 
Para poder representar este arreglo de mas de 1 dimension en codigo 3D vamos a realizar Mapeo Lexicografico un tema que la mayoria maneja.  

EL mapeo convertiria el arreglo anterior en:

Acceso por filas: {11,12,13,14,15,16,17,18,21,22,23,24,25}

Acceso por columnas: {11,21,31,41,12,22,32,42}
Ejemplo:

MAT[x,y] = 10 para MAT[1..10,1..3]. 10 filas, 3 columnas.

Acceso por Filas

formulaPos = ( x - 1)* tamCol + y

t1= x - 1
t2 = t1 * 3
t3 = t2 + y
MAT[T3] = 10

Acceso por Columnas

formulaPos = (y -1)* tamfila + x

t1 = y - 1
t2 = t1 * 10
t3 = t2 + x
MAT[t3] = 10

Formula Acceso por filas consecutivas:  x + (y-1)tam1 + (z-1)*tam2*tam1
Formula Acceso por columnas consecutivas:  (x-1)* tam1 + y + (z-1)* tam2*tam1

Otra Propuesta:

Formula Acceso por filas consecutivas : (x * tam1 + y) * tam2 + z

 
Escribir el codigo de 3 Direcciones de el la siguiente asignacion: 
ARR[x,y,z] = ARR[ARR[a,b,c],y,z]   Donde ARR[1..10,1..7,1..3] utilizando acceso por Columnas

Propuesta 1:
t1= x - 1
t2 = t1 * 10
t3 = t2 + y
t4 = z -1
t5 = t4 * 30
t6 = t3 + t5
t7 = a - 1
t8= t7 * 10 
t9 = t8 + b
t10 = c - 1
t11 = t10 * 3
t12 = t11 + t9 
t13 = ARR[t12]
t14 = t13 - 1
t15 = t14 * 10 
t16 = t15 + y 
t17 = z - 1
t18 = t17 * 30
t19 = t16+ t18
t20 = ARR[t19]
ARR[t6] = t20

Otra propuesta(la encontre en un cuaderno de un companiero aun no la entiendo):

t1 = x - 1
t2 = t1 * 7
t3 = t2 * 3
t4 = y - 1
t5 = t4 * 3
t6 = t3 + t5
t7 = t6 + z
t8  = a - 1
t9 = t8 * 7
t10 = t9 * 3
t11 = b - 1
t12 = t11 * 3
t13 = t10 + t12
t14 = t12 + c
t15 = t14 - 1
t16 = t15 * 7
t17 = t16 * 3
t18 = y - 1
t19 = t18 * 3
t20 = t17 + t19
t21 = t20 + z
t22 = ARR[t21]
ARR[t7] = t22 

Si aun no entiendes puedes ver el siguiente blog donde explican de manera detallada los arreglos en 3 dimensiones : Arreglos

No comments:

Post a Comment