SlideShare una empresa de Scribd logo
Matemáticas de bloques
o
Posicion de un elemento en un array
multidimensional
Author:
lrcvs / Xkrouhn
01.06.2015
Agradecimientos:
A los amigos de: http://www.freebasic.net/forum
En orden alfabético:
dodicat
fxm
Richard
Por el interés y desarrollo delprogramacon FreeBasic.
La matemática de bloques es un juego de niños
Como vemos en la figura,los bloques,se componende elementos,que
son la unidad de trabajo con los bloques.
1 elemento = 1 unidad
Con los elementos,podemos crear filas o columnas.
La fila, es un conjunto de elementos agrupados horizontalmente.
La columna,es un conjunto de elementos agrupadosverticalmente.
Agrupando filas o columnas,formamos superficies o niveles.
Si unimos varios niveles,obtenemosun bloque.
Las Dimensiones
Algunas películas de ciencia ficción con temática espacial,casisiempre
suelen decir que esta en una u otra dimensión
Definamos las dimensiones1D,2D, 3D, 4D, 5D y 6D....
1D: esta formada por filas O columnas de elementos.
2D: esta formada por filas Y columnas de elementos.
3D: esta formada por filas Y columnas,agrupados en niveles o capas.
4D: esta formado por variosbloques 3D, agrupados en filas.
5D: esta formado por variosbloques 3D,agrupados en filas Y
columnas.
6D: esta formado por variosbloques 3D,agrupados en filas Y columnas
Y niveles.
Uniendo bloques sucesivamente formaríamos7D,8D, 9d, etc, etc..
Estas tres figuras son equivalentes,todas tienen 27 elementos.Las
podemostransformarde varias formas (dimensiones,bloques,1D, 2D,
3D...) distintas,pero siguen teniendo los mismos elementos,pues son
todas equivalentes,mantienenel mismo numero de elementos.
Los conceptos
En este trabajo,las posicionesde los elementos,filas, columnasy
niveles,los contaremos delsiguiente modo:
Filas, Columnas,Niveles y Bloques o Dimensiones
1 = Filas, siemprede arriba a bajo.
2 = Columnas,siemprede izquierdaa derecha
3 = Niveles,siempre de arriba abajo.
4 = Bloques o dimensiones,de izquierda a derechay de arriba a bajo.
Una observación muyimportante:
“El numero de filas <= al numero de columnas.”
Si fuese de otra forma, estos cálculos serian erróneos
Calculo de las posiciones
Datos a conocer:
Los datos del bloque unidad:
FU = Numero de filas del bloque unidad
CU = Numero de columnasdel bloque unidad
NU = Numero de niveles del bloque unidad
BU = Numero de bloques igualesal bloque unidad
Los datos de la posicion delelemento a buscar:
PF = Posicion fila
PC = Posicion Columna
PN = Posicion Nivel
PB = Numero de Bloque
Formula generalpara calcular la posicion delelemento a buscar=
((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB - 1))
Esta formula,es el resultadode unir los distintos niveles de calculo de
la posicion de un elemento,dependiendode la disposiciónde los
bloques unidad.
Ejemplo 1
Usando la formula generalpodemos calcular la posicion de un
elemento en una tabla o nivel 2D
Datos del bloque unidad delejemplo:
FU = 5 CU = 6 NU = 1 BU = 1 Elementos= 5 * 6 * 1 * 1 = 30
Datos del elemento a buscar:
PF = 4 PC = 5 PN = 1 PB = 1
Posicion delelemento =
((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1))
((4 – 1) * 6) + 5 + ((5 * 6 * (1 – 1))) + ((5 * 6 * 1) * (1 – 1)) = 23
Tambien podemos calcular delsiguiente modo:
Posicion 2D = ((PF - 1) * CU) + PC
Sustituyendolas variables por sus valores,obtenemos igualmente la
posicion en un sistema 2D:
((4 – 1) * 6) + 5 = 23
Ejemplo 2
Usando la formula generalpodemos calcular la posicion de un
elemento en una tabla o nivel 3D
Datos del bloque unidad delejemplo:
FU = 3 CU = 3 NU = 3 BU = 1 Elementos= 3 * 3 * 3 * 1 = 27
Datos del elemento a buscar:
PF = 3 PC = 3 PN = 3 PB = 1
Posicion delelemento =
((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1))
((3 – 1) * 3) + 3 + ((3 * 3 * (3 – 1))) + ((3 * 3 * 3) * (1 – 1)) = 27
Tambien podemos calcular la posiciondelsiguiente modo:
Posicion 3D = ((PF - 1) * CU) + PC + ((FU * CU * (PN - 1)))
Sustituyendolas variables por sus valores,obtenemos igualmente la
posicion en un sistema 3D:
((3 – 1) * 3) + 3 + ((3 * 3 * (3 – 1))) = 27
Ejemplo 3
Usando la formula generalpodemos calcular la posicion de un
elemento en una tabla o nivel 4D
Datos del bloque unidad delejemplo:
FU = 3 CU = 3 NU = 3 BU = 3 Elementos= 3 * 3 * 3 * 3 = 81
Datos del elemento a buscar:
PF = 3 PC = 2 PN = 2 PB = 3
Posicion delelemento =
((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1))
((3 – 1) * 3) + 2 + ((3 * 3 * (2 – 1))) + ((3 * 3 * 3) * (3 – 1)) = 71
A partir de 3D, siempre usaremosformula general,simplemente
deberemos conocer elnumerode bloques que tenemosen el sistema.
Ejemplo 4
Datos del bloque unidad delejemplo:
FU = 3 CU = 3 NU = 3 BU = 9 Elementos= 3 * 3 * 3 * 9 = 243
Datos del elemento a buscar:
PF = 3 PC = 1 PN = 1 PB = 9
Posicion delelemento =
((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1))
((3 – 1) * 3) + 1 + ((3 * 3 * (1 – 1))) + ((3 * 3 * 3) * (9 – 1)) = 223
Ejemplo 5
Datos del bloque unidad delejemplo:
FU = 3 CU = 3 NU = 3 BU = 27 Elementos = 3 * 3 * 3 * 9 = 729
Datos del elemento a buscar:
PF = 3 PC = 3 PN = 2 PB = 27
Posicion delelemento =
((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1))
((3 – 1) * 3) + 3 + ((3 * 3 * (2 – 1))) + ((3 * 3 * 3) * (27 – 1)) = 720
Dando la vuelta al problema
En este capitulo,le damos la vuelta al problema,conocemos la
composición(filas, columnas,niveles)del bloque unidad y la posición
del elemento.
Ahora buscaremosla fila, la columna,nively bloque dondese
encuentrael elemento indicado.
Usare pseudocodigospara calcular cadaetapa del proceso,al final de
todos los procesos,hay un programaen Basic, que reúne las distintas
etapas,para calcularla fila del elemento que buscamos.
Si no realizamos las distintas etapas secuencialmente,no podemos
calcular los datos parciales.
El usar pseudocodigos,es por que son muy simples y cada personalos
puede interpretar a su modo, lo mas simple posible.
Estos procesosson generales,sirvenpara todos los casos.
Usaremos este ejemplo mas complejo:
Datos que necesitamos de este ejemplo:
F = Numero de filas del bloque unidad = 3
C = Numero de columnas delbloque unidad = 3
N = Numero de niveles delbloque unidad = 3
B = Numero de bloque a buscar
P = Posicion del elemento a buscar = 683
INT = Parte entera Mod = Resto división
El BLOQUE
Aquí calculamos elnumero bloquedel elemento a buscar.
CALCULAR_BLOQUE
F=3
C=3
N=3
P=683 “posicion delelemento”
Si P MOD (F*C*N) <> 0 Entonces
B=INT(P/(F*C*N))+1
Sino
B=INT(P/(F*C*N))
Fin Si
Escribir "BLOQUE = ",B
Fin
BLOQUE = 26
El nivel
Aquí calculamos elniveldel elemento a buscar.
CALCULAR NIVEL
F=3
C=3
N=3
B=26 “numerode bloque donde se encuentrael elemento”
P=683 “posicion delelemento”
Nivel=INT(P/(F*C))+1
Si P MOD (F*C) = 0 Entonces
Nivel = Nivel -1
Sino
Nivel = Nivel
Fin Si
nivel = Nivel-((B-1)*N)
Escribir "NIVEL = ",nivel
Fin
NIVEL = 1
La columna
Aquí calculamos elnumero de columna delelemento a buscar.
CALCULAR COLUMNA
C=2 “numero de columna delbloque donde se encuentrael
elemento a buscar”
P=683 “posicion delelemento”
Si P<C Entonces
C=P
Sino
C=P MOD C
Fin Si
Si P MOD C = 0 Entonces
CO=C
Sino
CO=CO
Fin Si
Escribir "COLUMNA= ",CO
Fin
COLUMNA= 2
La Fila
Aquí calculamos elnumero de fila del elemento a buscar.
CALCULAR FILA
F=3
C=3
N=3
B=26
P=683
F=INT(((P-CO-((F*C)*(N-1)))/C)+1) <<< Formulapara calcular la fila
Escribir "FILA= ",F
FILA = 3
Tras esta secuencia de calculo,obtenemostodos los datos, el elemento
a buscarse encuentraen:
BLOQUE = 26
NIVEL = 1
COLUMNA= 2
FILA = 3
Epilogo
Sigues pensando que la matemática de bloques es un juego de niños?
Que aplicaciones encuentras a estas formulas?
Posibles aplicaciones:
Informática,Robótica,Almacenamiento 3D Automatizado,Criptografía,
Gráficos 3D con númerosenteros.
En informática,se demuestra que todo Vector/Dim 2D, 3D, 4D..., se
puede transformaren un Vector/Dim 1D.
En almacenamiento 3D,sabiendo el numerode filas, columnas y niveles
del almacén,simplemente es necesario indicarla posición y el
programala descompone en numero de fila, numero de columna y
numero de niveldonde se encuentra el objeto a buscar.
Gráficos 3D,podemosindicar un punto 3D, mediante un valor,por
ejemplo el punto 3*3*3, su posición es 27,después descomponemosy
obtenemos X,Y,Z ( Fila, Columna,Nivel).
En criptografía como codificaciónde coordenadas,etc, etc.
Para mas información y ver el inicio de este trabajo en:
http://www.freebasic.net/forum/viewtopic.php?f=3&t=19820
Para escribir comentarios:
lrcvsx@yahoo.com
Dedicado a todas las personas
que tienen curiosidad.
Programas en Basic
Programapara calcular la posicion delelemento a buscar.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
cls
input "Filas del bloque unidad= ";ro
input "Columnasdelbloque unidad = ";co
input "Niveles del bloque unidad = ";le
print
input "Posicion Fila = ";a
input "Posicion Columna = ";b
input "Posicion Nivel = ";c
input "Numero de Bloque = ";d
P = ((a - 1) * co) + b + ((ro * co * (c - 1))) + ((ro * co * le) * (d-1))
print "Posicion = ";p
end
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Programapara buscarla fila, columna,nively bloque donde se
encuentraun elemento a buscar.
Datos necesarios:
Filas del bloque unidad
Columnasdel bloque unidad
Niveles del bloque unidad
Posicion a buscar
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
cls
input "Numero de filas del bloque unidad (filas <= columnas) = "; r
input "Numero de columnas delbloque unidad (columnas>= filas) = ";c
input "Numero de niveles del bloque unidad = ";l
input "Posicion a buscar = ";p
h = l
'calcularbloque /bloc
if p mod (r*c*l) <> 0 then
d = int(p/(r*c*l))+1
else
d = int(p/(r*c*l))
end if
'calcularnivel/ level
l = int(p/(r*c))+1
if p mod (r*c) = 0 then l = l-1
'calcularcolumna/ col
if p < c then co = p
if p >= c then co = p mod c
if p mod c = 0 then co = c
'calcularfila / row
f = ((p-co-((r*c)*(l-1)))/c)+1
':::::::::::::::::::::::::::::::::
print
color 12
print "blo = ";d;" fil = ";f; " col = ";co; " niv = ";l-((d-1)*h)
print "blo = ";d;" row = ";f; " col = ";co; " lev = ";l-((d-1)*h)
end
Fin

Más contenido relacionado

La actualidad más candente

Kruskal
KruskalKruskal
Kruskal
Alhe' Wero
 
Kruskal
KruskalKruskal
Kruskal
Alhe' Wero
 
Interpolacion 1
Interpolacion 1Interpolacion 1
Interpolacion 1
Adriana Rosales
 
12.iniciacion derivadas
12.iniciacion derivadas12.iniciacion derivadas
12.iniciacion derivadas
fabiancurso
 
Pds 2011 3-balotario de preguntas pc4
Pds 2011 3-balotario de preguntas pc4Pds 2011 3-balotario de preguntas pc4
Pds 2011 3-balotario de preguntas pc4
jcbenitezp
 
Parte 15
Parte 15Parte 15
Parte 15
Erika Ar Vel
 
Clase 10 CDI
Clase 10 CDIClase 10 CDI
Clase 10 CDI
Marcelo Valdiviezo
 
FRACCIONES ALGEBRAICAS
FRACCIONES ALGEBRAICASFRACCIONES ALGEBRAICAS
FRACCIONES ALGEBRAICAS
olgafer
 
FRACCIONES ALGEBRAICAS
FRACCIONES ALGEBRAICASFRACCIONES ALGEBRAICAS
FRACCIONES ALGEBRAICAS
olgafer
 
Ejercicios unidad 6 parte i
Ejercicios unidad 6 parte iEjercicios unidad 6 parte i
Ejercicios unidad 6 parte i
thomasbustos
 
Guia de ejercicios_unidad_i
Guia de ejercicios_unidad_iGuia de ejercicios_unidad_i
Guia de ejercicios_unidad_i
Georghe
 
Tema4 programación generica
Tema4   programación genericaTema4   programación generica
Tema4 programación generica
Pedro Hugo Valencia Morales
 
Ejercicios unidad 4v3
Ejercicios unidad 4v3Ejercicios unidad 4v3
Ejercicios unidad 4v3
thomasbustos
 
Presentación3d
Presentación3dPresentación3d
Presentación3d
mephistodark
 
Tarea
TareaTarea
Tarea
M.E.P
 
Tarea 03 il3
Tarea 03 il3Tarea 03 il3
Tarea 03 il3
Rene Alanoca
 
Tema 4
Tema 4Tema 4
Propiedades de Funciones - EMdH
Propiedades de Funciones - EMdHPropiedades de Funciones - EMdH
Propiedades de Funciones - EMdH
Adela M. Ramos
 
Dominio de Funciones - EMdH
Dominio de Funciones - EMdHDominio de Funciones - EMdH
Dominio de Funciones - EMdH
Adela M. Ramos
 
Guía nº 8 arreglos
Guía nº 8 arreglosGuía nº 8 arreglos
Guía nº 8 arreglos
Christian Yañez Villouta
 

La actualidad más candente (20)

Kruskal
KruskalKruskal
Kruskal
 
Kruskal
KruskalKruskal
Kruskal
 
Interpolacion 1
Interpolacion 1Interpolacion 1
Interpolacion 1
 
12.iniciacion derivadas
12.iniciacion derivadas12.iniciacion derivadas
12.iniciacion derivadas
 
Pds 2011 3-balotario de preguntas pc4
Pds 2011 3-balotario de preguntas pc4Pds 2011 3-balotario de preguntas pc4
Pds 2011 3-balotario de preguntas pc4
 
Parte 15
Parte 15Parte 15
Parte 15
 
Clase 10 CDI
Clase 10 CDIClase 10 CDI
Clase 10 CDI
 
FRACCIONES ALGEBRAICAS
FRACCIONES ALGEBRAICASFRACCIONES ALGEBRAICAS
FRACCIONES ALGEBRAICAS
 
FRACCIONES ALGEBRAICAS
FRACCIONES ALGEBRAICASFRACCIONES ALGEBRAICAS
FRACCIONES ALGEBRAICAS
 
Ejercicios unidad 6 parte i
Ejercicios unidad 6 parte iEjercicios unidad 6 parte i
Ejercicios unidad 6 parte i
 
Guia de ejercicios_unidad_i
Guia de ejercicios_unidad_iGuia de ejercicios_unidad_i
Guia de ejercicios_unidad_i
 
Tema4 programación generica
Tema4   programación genericaTema4   programación generica
Tema4 programación generica
 
Ejercicios unidad 4v3
Ejercicios unidad 4v3Ejercicios unidad 4v3
Ejercicios unidad 4v3
 
Presentación3d
Presentación3dPresentación3d
Presentación3d
 
Tarea
TareaTarea
Tarea
 
Tarea 03 il3
Tarea 03 il3Tarea 03 il3
Tarea 03 il3
 
Tema 4
Tema 4Tema 4
Tema 4
 
Propiedades de Funciones - EMdH
Propiedades de Funciones - EMdHPropiedades de Funciones - EMdH
Propiedades de Funciones - EMdH
 
Dominio de Funciones - EMdH
Dominio de Funciones - EMdHDominio de Funciones - EMdH
Dominio de Funciones - EMdH
 
Guía nº 8 arreglos
Guía nº 8 arreglosGuía nº 8 arreglos
Guía nº 8 arreglos
 

Similar a Matematicas con bloques o posicion de un elemento en un array or Block math or Position of an element in a multidimensional array.

Informe tecnico de la unidad 1
Informe tecnico de la unidad 1Informe tecnico de la unidad 1
Informe tecnico de la unidad 1
Eliu Osseas Puc Puc
 
Cuaderno Matemática 4º Semestre Ciencias Adultos
Cuaderno Matemática 4º Semestre Ciencias AdultosCuaderno Matemática 4º Semestre Ciencias Adultos
Cuaderno Matemática 4º Semestre Ciencias Adultos
Prof. Luis Eduardo Camacho Saez
 
Relaciones
RelacionesRelaciones
Relaciones
Rodolfo Hinojosa
 
Red neuronal recurrente
Red neuronal recurrenteRed neuronal recurrente
Red neuronal recurrente
Michel Jraiche
 
Newton And Neville Interpolation
Newton And Neville InterpolationNewton And Neville Interpolation
Newton And Neville Interpolation
Cristobal Lopez
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
Maestros en Linea
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
AriannaYadiraT
 
Matrices
MatricesMatrices
Matrices
12edgar
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Ii
danyyel123
 
INTERPOLACION Y EJEMPLOS PRACTICOS PARA CURSO
INTERPOLACION Y EJEMPLOS PRACTICOS PARA CURSOINTERPOLACION Y EJEMPLOS PRACTICOS PARA CURSO
INTERPOLACION Y EJEMPLOS PRACTICOS PARA CURSO
BryanChamorroDurand1
 
Electrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicadoElectrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicado
SANTIAGO PABLO ALBERTO
 
Python03
Python03Python03
Python03
Victor Pando
 
Cuaderno Matemática 10º Semestre
Cuaderno Matemática 10º  SemestreCuaderno Matemática 10º  Semestre
Cuaderno Matemática 10º Semestre
Prof. Luis Eduardo Camacho Saez
 
01. cuaderno matemática 7mo stre
01.  cuaderno matemática 7mo stre01.  cuaderno matemática 7mo stre
01. cuaderno matemática 7mo stre
Prof. Luis Eduardo Camacho Saez
 
Interpolacion y aproximacion lab 07
Interpolacion y aproximacion lab 07Interpolacion y aproximacion lab 07
Interpolacion y aproximacion lab 07
Platón José Colque Vargas
 
jaisan
jaisanjaisan
jaisan
jai
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
carpio
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
Maestros Online
 
Cap6 - Factorización.pdf
Cap6 - Factorización.pdfCap6 - Factorización.pdf
Cap6 - Factorización.pdf
Luis Salazar
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
Axel
 

Similar a Matematicas con bloques o posicion de un elemento en un array or Block math or Position of an element in a multidimensional array. (20)

Informe tecnico de la unidad 1
Informe tecnico de la unidad 1Informe tecnico de la unidad 1
Informe tecnico de la unidad 1
 
Cuaderno Matemática 4º Semestre Ciencias Adultos
Cuaderno Matemática 4º Semestre Ciencias AdultosCuaderno Matemática 4º Semestre Ciencias Adultos
Cuaderno Matemática 4º Semestre Ciencias Adultos
 
Relaciones
RelacionesRelaciones
Relaciones
 
Red neuronal recurrente
Red neuronal recurrenteRed neuronal recurrente
Red neuronal recurrente
 
Newton And Neville Interpolation
Newton And Neville InterpolationNewton And Neville Interpolation
Newton And Neville Interpolation
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
 
Matrices
MatricesMatrices
Matrices
 
Estructura De Datos Unidad Ii
Estructura De Datos Unidad IiEstructura De Datos Unidad Ii
Estructura De Datos Unidad Ii
 
INTERPOLACION Y EJEMPLOS PRACTICOS PARA CURSO
INTERPOLACION Y EJEMPLOS PRACTICOS PARA CURSOINTERPOLACION Y EJEMPLOS PRACTICOS PARA CURSO
INTERPOLACION Y EJEMPLOS PRACTICOS PARA CURSO
 
Electrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicadoElectrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicado
 
Python03
Python03Python03
Python03
 
Cuaderno Matemática 10º Semestre
Cuaderno Matemática 10º  SemestreCuaderno Matemática 10º  Semestre
Cuaderno Matemática 10º Semestre
 
01. cuaderno matemática 7mo stre
01.  cuaderno matemática 7mo stre01.  cuaderno matemática 7mo stre
01. cuaderno matemática 7mo stre
 
Interpolacion y aproximacion lab 07
Interpolacion y aproximacion lab 07Interpolacion y aproximacion lab 07
Interpolacion y aproximacion lab 07
 
jaisan
jaisanjaisan
jaisan
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
 
Cap6 - Factorización.pdf
Cap6 - Factorización.pdfCap6 - Factorización.pdf
Cap6 - Factorización.pdf
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 

Último

DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
JhenryHuisa1
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 

Último (9)

DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 

Matematicas con bloques o posicion de un elemento en un array or Block math or Position of an element in a multidimensional array.

  • 1. Matemáticas de bloques o Posicion de un elemento en un array multidimensional Author: lrcvs / Xkrouhn 01.06.2015
  • 2. Agradecimientos: A los amigos de: http://www.freebasic.net/forum En orden alfabético: dodicat fxm Richard Por el interés y desarrollo delprogramacon FreeBasic.
  • 3. La matemática de bloques es un juego de niños Como vemos en la figura,los bloques,se componende elementos,que son la unidad de trabajo con los bloques. 1 elemento = 1 unidad Con los elementos,podemos crear filas o columnas. La fila, es un conjunto de elementos agrupados horizontalmente. La columna,es un conjunto de elementos agrupadosverticalmente. Agrupando filas o columnas,formamos superficies o niveles. Si unimos varios niveles,obtenemosun bloque.
  • 4. Las Dimensiones Algunas películas de ciencia ficción con temática espacial,casisiempre suelen decir que esta en una u otra dimensión Definamos las dimensiones1D,2D, 3D, 4D, 5D y 6D.... 1D: esta formada por filas O columnas de elementos. 2D: esta formada por filas Y columnas de elementos. 3D: esta formada por filas Y columnas,agrupados en niveles o capas. 4D: esta formado por variosbloques 3D, agrupados en filas. 5D: esta formado por variosbloques 3D,agrupados en filas Y columnas.
  • 5. 6D: esta formado por variosbloques 3D,agrupados en filas Y columnas Y niveles. Uniendo bloques sucesivamente formaríamos7D,8D, 9d, etc, etc.. Estas tres figuras son equivalentes,todas tienen 27 elementos.Las podemostransformarde varias formas (dimensiones,bloques,1D, 2D, 3D...) distintas,pero siguen teniendo los mismos elementos,pues son todas equivalentes,mantienenel mismo numero de elementos.
  • 6. Los conceptos En este trabajo,las posicionesde los elementos,filas, columnasy niveles,los contaremos delsiguiente modo: Filas, Columnas,Niveles y Bloques o Dimensiones 1 = Filas, siemprede arriba a bajo. 2 = Columnas,siemprede izquierdaa derecha 3 = Niveles,siempre de arriba abajo. 4 = Bloques o dimensiones,de izquierda a derechay de arriba a bajo. Una observación muyimportante: “El numero de filas <= al numero de columnas.” Si fuese de otra forma, estos cálculos serian erróneos
  • 7. Calculo de las posiciones Datos a conocer: Los datos del bloque unidad: FU = Numero de filas del bloque unidad CU = Numero de columnasdel bloque unidad NU = Numero de niveles del bloque unidad BU = Numero de bloques igualesal bloque unidad Los datos de la posicion delelemento a buscar: PF = Posicion fila PC = Posicion Columna PN = Posicion Nivel PB = Numero de Bloque Formula generalpara calcular la posicion delelemento a buscar= ((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB - 1)) Esta formula,es el resultadode unir los distintos niveles de calculo de la posicion de un elemento,dependiendode la disposiciónde los bloques unidad.
  • 8. Ejemplo 1 Usando la formula generalpodemos calcular la posicion de un elemento en una tabla o nivel 2D Datos del bloque unidad delejemplo: FU = 5 CU = 6 NU = 1 BU = 1 Elementos= 5 * 6 * 1 * 1 = 30 Datos del elemento a buscar: PF = 4 PC = 5 PN = 1 PB = 1 Posicion delelemento = ((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1)) ((4 – 1) * 6) + 5 + ((5 * 6 * (1 – 1))) + ((5 * 6 * 1) * (1 – 1)) = 23 Tambien podemos calcular delsiguiente modo: Posicion 2D = ((PF - 1) * CU) + PC Sustituyendolas variables por sus valores,obtenemos igualmente la posicion en un sistema 2D: ((4 – 1) * 6) + 5 = 23
  • 9. Ejemplo 2 Usando la formula generalpodemos calcular la posicion de un elemento en una tabla o nivel 3D Datos del bloque unidad delejemplo: FU = 3 CU = 3 NU = 3 BU = 1 Elementos= 3 * 3 * 3 * 1 = 27 Datos del elemento a buscar: PF = 3 PC = 3 PN = 3 PB = 1 Posicion delelemento = ((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1)) ((3 – 1) * 3) + 3 + ((3 * 3 * (3 – 1))) + ((3 * 3 * 3) * (1 – 1)) = 27 Tambien podemos calcular la posiciondelsiguiente modo: Posicion 3D = ((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) Sustituyendolas variables por sus valores,obtenemos igualmente la posicion en un sistema 3D: ((3 – 1) * 3) + 3 + ((3 * 3 * (3 – 1))) = 27
  • 10. Ejemplo 3 Usando la formula generalpodemos calcular la posicion de un elemento en una tabla o nivel 4D Datos del bloque unidad delejemplo: FU = 3 CU = 3 NU = 3 BU = 3 Elementos= 3 * 3 * 3 * 3 = 81 Datos del elemento a buscar: PF = 3 PC = 2 PN = 2 PB = 3 Posicion delelemento = ((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1)) ((3 – 1) * 3) + 2 + ((3 * 3 * (2 – 1))) + ((3 * 3 * 3) * (3 – 1)) = 71 A partir de 3D, siempre usaremosformula general,simplemente deberemos conocer elnumerode bloques que tenemosen el sistema.
  • 11. Ejemplo 4 Datos del bloque unidad delejemplo: FU = 3 CU = 3 NU = 3 BU = 9 Elementos= 3 * 3 * 3 * 9 = 243 Datos del elemento a buscar: PF = 3 PC = 1 PN = 1 PB = 9 Posicion delelemento = ((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1)) ((3 – 1) * 3) + 1 + ((3 * 3 * (1 – 1))) + ((3 * 3 * 3) * (9 – 1)) = 223
  • 12. Ejemplo 5 Datos del bloque unidad delejemplo: FU = 3 CU = 3 NU = 3 BU = 27 Elementos = 3 * 3 * 3 * 9 = 729 Datos del elemento a buscar: PF = 3 PC = 3 PN = 2 PB = 27 Posicion delelemento = ((PF - 1) * CU) + PC + ((FU * CU * (PN - 1))) + ((FU * CU * NU) * (PB – 1)) ((3 – 1) * 3) + 3 + ((3 * 3 * (2 – 1))) + ((3 * 3 * 3) * (27 – 1)) = 720
  • 13. Dando la vuelta al problema En este capitulo,le damos la vuelta al problema,conocemos la composición(filas, columnas,niveles)del bloque unidad y la posición del elemento. Ahora buscaremosla fila, la columna,nively bloque dondese encuentrael elemento indicado. Usare pseudocodigospara calcular cadaetapa del proceso,al final de todos los procesos,hay un programaen Basic, que reúne las distintas etapas,para calcularla fila del elemento que buscamos. Si no realizamos las distintas etapas secuencialmente,no podemos calcular los datos parciales. El usar pseudocodigos,es por que son muy simples y cada personalos puede interpretar a su modo, lo mas simple posible. Estos procesosson generales,sirvenpara todos los casos.
  • 14. Usaremos este ejemplo mas complejo: Datos que necesitamos de este ejemplo: F = Numero de filas del bloque unidad = 3 C = Numero de columnas delbloque unidad = 3 N = Numero de niveles delbloque unidad = 3 B = Numero de bloque a buscar P = Posicion del elemento a buscar = 683 INT = Parte entera Mod = Resto división
  • 15. El BLOQUE Aquí calculamos elnumero bloquedel elemento a buscar. CALCULAR_BLOQUE F=3 C=3 N=3 P=683 “posicion delelemento” Si P MOD (F*C*N) <> 0 Entonces B=INT(P/(F*C*N))+1 Sino B=INT(P/(F*C*N)) Fin Si Escribir "BLOQUE = ",B Fin BLOQUE = 26
  • 16. El nivel Aquí calculamos elniveldel elemento a buscar. CALCULAR NIVEL F=3 C=3 N=3 B=26 “numerode bloque donde se encuentrael elemento” P=683 “posicion delelemento” Nivel=INT(P/(F*C))+1 Si P MOD (F*C) = 0 Entonces Nivel = Nivel -1 Sino Nivel = Nivel Fin Si nivel = Nivel-((B-1)*N) Escribir "NIVEL = ",nivel Fin NIVEL = 1
  • 17. La columna Aquí calculamos elnumero de columna delelemento a buscar. CALCULAR COLUMNA C=2 “numero de columna delbloque donde se encuentrael elemento a buscar” P=683 “posicion delelemento” Si P<C Entonces C=P Sino C=P MOD C Fin Si Si P MOD C = 0 Entonces CO=C Sino CO=CO Fin Si Escribir "COLUMNA= ",CO Fin COLUMNA= 2
  • 18. La Fila Aquí calculamos elnumero de fila del elemento a buscar. CALCULAR FILA F=3 C=3 N=3 B=26 P=683 F=INT(((P-CO-((F*C)*(N-1)))/C)+1) <<< Formulapara calcular la fila Escribir "FILA= ",F FILA = 3 Tras esta secuencia de calculo,obtenemostodos los datos, el elemento a buscarse encuentraen: BLOQUE = 26 NIVEL = 1 COLUMNA= 2 FILA = 3
  • 19. Epilogo Sigues pensando que la matemática de bloques es un juego de niños? Que aplicaciones encuentras a estas formulas? Posibles aplicaciones: Informática,Robótica,Almacenamiento 3D Automatizado,Criptografía, Gráficos 3D con númerosenteros. En informática,se demuestra que todo Vector/Dim 2D, 3D, 4D..., se puede transformaren un Vector/Dim 1D. En almacenamiento 3D,sabiendo el numerode filas, columnas y niveles del almacén,simplemente es necesario indicarla posición y el programala descompone en numero de fila, numero de columna y numero de niveldonde se encuentra el objeto a buscar. Gráficos 3D,podemosindicar un punto 3D, mediante un valor,por ejemplo el punto 3*3*3, su posición es 27,después descomponemosy obtenemos X,Y,Z ( Fila, Columna,Nivel). En criptografía como codificaciónde coordenadas,etc, etc. Para mas información y ver el inicio de este trabajo en: http://www.freebasic.net/forum/viewtopic.php?f=3&t=19820 Para escribir comentarios: lrcvsx@yahoo.com Dedicado a todas las personas que tienen curiosidad.
  • 20. Programas en Basic Programapara calcular la posicion delelemento a buscar. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: cls input "Filas del bloque unidad= ";ro input "Columnasdelbloque unidad = ";co input "Niveles del bloque unidad = ";le print input "Posicion Fila = ";a input "Posicion Columna = ";b input "Posicion Nivel = ";c input "Numero de Bloque = ";d P = ((a - 1) * co) + b + ((ro * co * (c - 1))) + ((ro * co * le) * (d-1)) print "Posicion = ";p end :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  • 21. Programapara buscarla fila, columna,nively bloque donde se encuentraun elemento a buscar. Datos necesarios: Filas del bloque unidad Columnasdel bloque unidad Niveles del bloque unidad Posicion a buscar ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: cls input "Numero de filas del bloque unidad (filas <= columnas) = "; r input "Numero de columnas delbloque unidad (columnas>= filas) = ";c input "Numero de niveles del bloque unidad = ";l input "Posicion a buscar = ";p h = l 'calcularbloque /bloc if p mod (r*c*l) <> 0 then d = int(p/(r*c*l))+1 else d = int(p/(r*c*l)) end if 'calcularnivel/ level l = int(p/(r*c))+1 if p mod (r*c) = 0 then l = l-1 'calcularcolumna/ col if p < c then co = p if p >= c then co = p mod c if p mod c = 0 then co = c 'calcularfila / row f = ((p-co-((r*c)*(l-1)))/c)+1 '::::::::::::::::::::::::::::::::: print color 12 print "blo = ";d;" fil = ";f; " col = ";co; " niv = ";l-((d-1)*h) print "blo = ";d;" row = ";f; " col = ";co; " lev = ";l-((d-1)*h) end
  • 22. Fin