elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tratamiento de dos tablas a la vez
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tratamiento de dos tablas a la vez  (Leído 2,588 veces)
muymuyperdido

Desconectado Desconectado

Mensajes: 45


Ver Perfil
Tratamiento de dos tablas a la vez
« en: 29 Diciembre 2012, 20:16 pm »

Lo puse en otro post, pero no sé si está bien explicado asique aqui lo pongo más claro
Tengo dos tablas y tengo que tratar cada fila de una de ellas con todas las filas de la otra.
Asi
1 2 3
4 5 6
7 8 9
11 12 13
14 15 16
17 18 19
La fila 1 2 3 con 11 12 13, con 14 15 16, y con 17 18 19.
La 4 5 6  con 11 12 13, con 14 15 16, y con 17 18 19.
Y la 7 8 9  con 11 12 13, con 14 15 16, y con 17 18 19.
Seria calcular la distancia euclidea como si fuesen ejes coordenados, es decir
la raiz de la suma de las diferencias al cuadrado (en una funcion)
No pongo codigo porque no sé por donde empezar, es decir, que bucle hago para hacer esa relacion?


En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Tratamiento de dos tablas a la vez
« Respuesta #1 en: 29 Diciembre 2012, 23:36 pm »

Hola! vas a necesitar 3 bucles anidados:

-El indice del primer bucle maneja las filas de la tabla 1
-El indice del segundo bucle maneja las filas de la tabla 2
-El indice del tercer bucle maneja las columnas de ambas tablas


Saludos


En línea

Ahorrate una pregunta, lee el man
flony


Desconectado Desconectado

Mensajes: 565



Ver Perfil
Re: Tratamiento de dos tablas a la vez
« Respuesta #2 en: 29 Diciembre 2012, 23:38 pm »

arrancar por usar la biblioteca standar para sacar las raices y potencias...lo de la tabla seria con 2 vectores de tamaño 2(corre desde 0 a 2 y suma 3)...
info de biblioteca
http://www.cplusplus.com/reference/cmath/
....jaajaja lo lindo de la programacion hay mas de una manera de llegar al mismo rsultado
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
muymuyperdido

Desconectado Desconectado

Mensajes: 45


Ver Perfil
Re: Tratamiento de dos tablas a la vez
« Respuesta #3 en: 30 Diciembre 2012, 00:59 am »

Hola! vas a necesitar 3 bucles anidados:

-El indice del primer bucle maneja las filas de la tabla 1
-El indice del segundo bucle maneja las filas de la tabla 2
-El indice del tercer bucle maneja las columnas de ambas tablas


Saludos

Esto es lo que necesitaba! Muchas gracias^^
Lo he planteado asi

for(z=0;z<m;z++){
for(i=0;i<m;i++){
dist[z]=0;
for(j=0;j<m;j++){
dist[z]=dist[z]+((tabla1[j]-tabla2[j])(tabla1[j]-tabla2[j]))
}
dist[z]=sqrt(dist[z]);
}
}
No lo he comprobado pero creo, ...creo, que está bien.
Para ordenar cada columna de forma independiente como seria?
En línea

flony


Desconectado Desconectado

Mensajes: 565



Ver Perfil
Re: Tratamiento de dos tablas a la vez
« Respuesta #4 en: 30 Diciembre 2012, 02:27 am »

yo decia hacer algo asi...
Código:
#include <iostream>
#include <math.h>

using namespace std;

float main()
{
int vector[2];
int vector1[2];
float vector2[2];
int i=0;
for (int i = 0; i < 2; i++)
{
vector2[i]=sqrt( pow(vector[i]-vector1[i], 2));
}
cin.get();
return 0;
}
es solo para que te hagas la idea...supongo que los datos de las tablas las tenes en algun lado, y esa area todavia no la uso bien :)
« Última modificación: 30 Diciembre 2012, 02:52 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
muymuyperdido

Desconectado Desconectado

Mensajes: 45


Ver Perfil
Re: Tratamiento de dos tablas a la vez
« Respuesta #5 en: 30 Diciembre 2012, 10:37 am »

Código
  1. for(z=0;z<m;z++){
  2.     for(i=0;i<m;i++){
  3.           dist[z]=0;
  4.           for(j=0;j<m;j++){
  5.                  dist[z][i]=dist[z][i]+((tabla1[j]-tabla2[j])(tabla1[j]-tabla2[j]))
  6.           }
  7.     dist[z]=sqrt(dist[z]);
  8. }
  9. }
¿No podria ser así? Almacenandose todas las distancias en una tabla bidimensional?
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Tratamiento de dos tablas a la vez
« Respuesta #6 en: 31 Diciembre 2012, 02:23 am »

Una pregunta: dist es un arreglo o una matriz???

Si es una matriz esto dist[z]=0 es un error, nose si lo compilaste o no pero trata de prestar atencion a los errores que te marca el compilador...


El tamaño de la tabla para almacenar los resultados debe ser igual a las combinaciones que se generan, segun el ejemplo debe ser de 3x3 ya que se van a generar 9 resultados


Saludos
En línea

Ahorrate una pregunta, lee el man
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Tratamiento de dos tablas a la vez
« Respuesta #7 en: 31 Diciembre 2012, 19:24 pm »


Seria calcular la distancia euclidea como si fuesen ejes coordenados, es decir
la raiz de la suma de las diferencias al cuadrado (en una funcion)
No pongo codigo porque no sé por donde empezar, es decir, que bucle hago para hacer esa relacion?
A ver si así te aclaras un poquito más. te he puesto un par de cosas para que veas como va el código, aunque sólo con la parte de CALCULO DE CUADRADO DE DISTANCIA tienes lo que realmente quieres:
Código
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5.   int v1[3][3]={{1,2,3},
  6.                 {4,5,6},
  7.                 {7,8,9}},
  8.       v2[3][3]={{2,4,8},
  9.                 {6,9,18},
  10.                 {3,4,5}}, i,j,k;
  11.   float d[3][3]={0};
  12.   /******ESTO PARA VER COMO SE RESTAN LAS LINEAS*************/
  13.   for (i=0;i<3;i++){
  14.      for (j=0;j<3;j++){
  15.         for (k=0;k<3;k++){
  16.            d[i][j]+=v2[i][k]-v1[j][k];
  17.         }
  18.      }
  19.   }
  20.   for (i=0;i<3;i++){
  21.      for (j=0;j<3;j++){
  22.         printf ("%g  ",d[i][j]);
  23.      }puts ("\n");
  24.   }
  25.   puts ("\n");
  26.   /*****************CALCULO DE CUADRADO DE DISTANCIAS****ESTO SOLO YA TE VALE****************/
  27.  
  28.   for (i=0;i<3;i++){
  29.      for (j=0;j<3;j++){d[i][j]=0;
  30.         for (k=0;k<3;k++){
  31.            d[i][j]+=pow (v2[i][k]-v1[j][k],2);
  32.         }/* d[i][j]=sqrt (d[i][j]);<== para calcular aqui las distancias y quitando CALCULO DE DISTANCIAS */
  33.      }
  34.   }
  35.   for (i=0;i<3;i++){
  36.      for (j=0;j<3;j++){
  37.         printf ("%g  ",d[i][j]);
  38.      }puts ("\n");
  39.   }
  40. /*****************CALCULO DE DISTANCIAS********************/
  41.  
  42.   for (i=0;i<3;i++){
  43.      for (j=0;j<3;j++){
  44.            d[i][j]=sqrt (d[i][j]);
  45.      }
  46.   }
  47.   for (i=0;i<3;i++){
  48.      for (j=0;j<3;j++){
  49.         printf ("%g  ",d[i][j]);
  50.      }puts ("\n");
  51.   }
  52.   return 0;
  53. }
  54.  
Saluditos!. ... y Feliz 2013  :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
« Última modificación: 31 Diciembre 2012, 19:36 pm por leosansan » En línea

muymuyperdido

Desconectado Desconectado

Mensajes: 45


Ver Perfil
Re: Tratamiento de dos tablas a la vez
« Respuesta #8 en: 1 Enero 2013, 13:01 pm »

aunque sólo con la parte de CALCULO DE CUADRADO DE DISTANCIA tienes lo que realmente quieres
¡Muchisimas gracias! :D  :D :D :D :D :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
tratamiento de errores en VB
Programación Visual Basic
^kazike^ 1 822 Último mensaje 24 Enero 2008, 15:19 pm
por Hans el Topo
tratamiento de cadenas
Programación Visual Basic
inproboj 1 1,219 Último mensaje 13 Mayo 2010, 20:26 pm
por inproboj
Consulta tratamiento de imágenes en python
Programación General
achu08 1 879 Último mensaje 7 Mayo 2016, 18:53 pm
por MCKSys Argentina
Tratamiento de variables Script Linux
Scripting
Rav3nS 3 1,459 Último mensaje 12 Junio 2016, 02:51 am
por Echizen
¿Por qué sucede lo siguiente con el tratamiento de punteros?
Programación C/C++
mester 1 780 Último mensaje 14 Septiembre 2016, 12:43 pm
por do-while
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines