Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - leosansan

#1081
Cita de: muymuyperdido en  1 Enero 2013, 20:41 PM
CitarSegún tú, el problema empieza con un: tengo una tabla asi
1 2 3 4
4 3 1 3
2 1 4 2
3 4 2 1

Pues el array "num" consta de los elementos de esa matriz:1,2,3,4. Lo uso porque si siempre fuera así el código podría ser más sencillo, pero con el uso del array me cubro las espaldas en caso de que los elementos de esa matriz no sean ni esos ni consecutivos.
Saluditos!. .....  :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
#1082
Programación C/C++ / Re: Problema cadenas
1 Enero 2013, 18:56 PM
No funciona el enlace. Mira si lo puedes corregir.
Saluditos!.
.....  :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
#1083
Cita de: muymuyperdido en  1 Enero 2013, 16:44 PM
Muchisimas gracias! Pero podrias poner que hace cada cosa? :| Es que no lo acabo de entender  :-\
Lo mejor es que corras el programa y "voila" hace lo que te pide.
Código (cpp) [Seleccionar]

int num[]={1,2,3,4};<==array con los numeros de la matriz inicial.
............................
for (k=0;k<4;k++){
     p++; <==inicio e incremento el array "num"
       for (i=0;i<4;i++){
           for (j=0;j<4;j++){
              if (v1[i][j]==num[p]) { <==voy cogiendo los distintos numeros de la matriz: el 1,2,3,4
                 b[k][j]=v1[i][j]; <==para cada num lo coloco en la linea correspodiente:los 1 en la primera, los 2 en la segunda ......
                 d[k][j]=v2[i][0]; <==veo las coincidencias con la matriz de control, la de ceros y unos y los meto en otra matriz
              }
           }
        }
   }
Pero como te comente, corre el programa y veras que te da la matriz
"b"         "d"
1 1 1 1      0011
2 2 2 2      0010
3 3 3 3      1101
4 4 4 4      1100

Saluditos!. .............  :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
#1084
Cita de: muymuyperdido en 29 Diciembre 2012, 10:32 AM
Tengo una tabla asi
1 2 3 4
4 3 1 3
2 1 4 2
3 4 2 1
Y otra que es
0
1
0
1
Donde cada elemento de la 1 fila de corresponde al 0, de la segunda al 1, y asi (cada columna de la 1 tabla son experimentos diferentes)
Tengo que ordenar cada columna de menor a mayor y a la vez crear otra tabla de 4x4 con las etiquetas (0 y 1) ordenadas en cada experimento.
Se quedaria
1 1 1 1      0011
2 2 2 2      0010
3 3 3 3      1101
4 4 4 4      1100
¿Serian tres for anidados?

Pues sí, son tres for anidados con una condición. Te he puesto el array "num" para un caso más general en que los números de la matriz no sean consecutivos:
Código (cpp) [Seleccionar]
#include <stdio.h>

int main()
{
    int i,j,k,p=-1;
    int num[]={1,2,3,4};
    int v1[4][4]={{1,2,3,4},
                 {4,3,1,3},
                 {2,1,4,2},
                 {3,4,2,1}},
       v2[4][1]={0,
                 1,
                 0,
                 1};
    int b[4][4]={0},d[4][4]={0};
    for (k=0;k<4;k++){
      p++;
        for (i=0;i<4;i++){
            for (j=0;j<4;j++){
               if (v1[i][j]==num[p]) {
                  b[k][j]=v1[i][j];
                  d[k][j]=v2[i][0];
               }
            }
         }
    }
   for (i=0;i<4;i++){
      for (j=0;j<4;j++){
         printf ("%d  ",b[i][j]);
      }puts ("\n");
   }
   puts ("\n");
   for (i=0;i<4;i++){
      for (j=0;j<4;j++){
         printf ("%d  ",d[i][j]);
      }puts ("\n");
   }
    return  0;
}

Saluditos!. .....   :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
#1085
Cita de: muymuyperdido en 29 Diciembre 2012, 20:16 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 (cpp) [Seleccionar]

#include <stdio.h>
#include <math.h>
int main()
{
  int v1[3][3]={{1,2,3},
                {4,5,6},
                {7,8,9}},
      v2[3][3]={{2,4,8},
                {6,9,18},
                {3,4,5}}, i,j,k;
  float d[3][3]={0};
  /******ESTO PARA VER COMO SE RESTAN LAS LINEAS*************/
  for (i=0;i<3;i++){
     for (j=0;j<3;j++){
        for (k=0;k<3;k++){
           d[i][j]+=v2[i][k]-v1[j][k];
        }
     }
  }
  for (i=0;i<3;i++){
     for (j=0;j<3;j++){
        printf ("%g  ",d[i][j]);
     }puts ("\n");
  }
  puts ("\n");
  /*****************CALCULO DE CUADRADO DE DISTANCIAS****ESTO SOLO YA TE VALE****************/

  for (i=0;i<3;i++){
     for (j=0;j<3;j++){d[i][j]=0;
        for (k=0;k<3;k++){
           d[i][j]+=pow (v2[i][k]-v1[j][k],2);
        }/* d[i][j]=sqrt (d[i][j]);<== para calcular aqui las distancias y quitando CALCULO DE DISTANCIAS */
     }
  }
  for (i=0;i<3;i++){
     for (j=0;j<3;j++){
        printf ("%g  ",d[i][j]);
     }puts ("\n");
  }
/*****************CALCULO DE DISTANCIAS********************/

  for (i=0;i<3;i++){
     for (j=0;j<3;j++){
           d[i][j]=sqrt (d[i][j]);
     }
  }
  for (i=0;i<3;i++){
     for (j=0;j<3;j++){
        printf ("%g  ",d[i][j]);
     }puts ("\n");
  }
  return 0;
}

Saluditos!. ... y Feliz 2013  :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
#1086
Cita de: luis456 en 27 Diciembre 2012, 16:50 PM


seria de esta forma ¡ ¡ ¡

//MOSTRAMOS LOS NUMEROS ORDENADOS///////////////aca puse esto mientras
cout<<"\nRESULTADOS EN ORDEN\n";
////
    for(int i = 0; i < contador; i++){

        if (resultados[i]>=80) break;
         cout <<resultados[i])<<" ";
}


Saluditos!. :rolleyes: :rolleyes: :rolleyes: :rolleyes:
#1087
Cita de: luis456 en 27 Diciembre 2012, 12:17 PM

1 2 3 4 5 6 9 10 45 68 77 79,,no sigue se para en el 79 y acaba

Primero se tienen que ordenar todos, ya que si pones la condición en el "proceso" de ordenamiento y se encuentra con 80 se pararía.
Es decir, la condición la impondrías en la "impresión" de los números ordenados:
Código (cpp) [Seleccionar]
for (i=0; i< Tam; i++) {
        if (array[i]>=80) break;
         cout <<array[i])<<" ";
}

Saluditos!.        
#1088
Cita de: Bl4ck3lf en 20 Diciembre 2012, 16:11 PM

Lo que quiero es no tener que ir guardando en las variables una por una, sino que num vaya tomando valor 1,2,3...etc.
Código (cpp) [Seleccionar]
#include <stdio.h>

main(){
  int num[5]={0};
  int i=0;
  for(i=0;i<5;i++){
    printf("\nValor %d:",i+1);
    num[i]=i+1;
    printf("Valores: %d", num[i]);
  }
}

Saluditos!.
#1089
Cita de: luis456 en 17 Diciembre 2012, 21:09 PM
Bueno esto no serviria para hacer lo que busco ?
CitarSi lo que buscas es guardar las combinaciones en el fichero "numeros.txt" el código que te puse en el anterior post -un poco más arriba de este- lo hace. El fichero de txt lo encuentras en la carpeta donde tengas guardado el programa.
Saluditos!.
#1090
Cita de: leosansan en 16 Diciembre 2012, 14:42 PM

Saluditos!.
Citar
P.D: Recuerda que sólo va para combinaciones de n elementos tomados de tres en tres los otros casos están pendientes de implementar.