|
1083
|
Programación / Programación C/C++ / Re: Ordenación de tablas
|
en: 1 Enero 2013, 18:55 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.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!. .............
|
|
|
1084
|
Programación / Programación C/C++ / Re: Ordenación de tablas
|
en: 1 Enero 2013, 15:46 pm
|
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:#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!. .....
|
|
|
1085
|
Programación / Programación C/C++ / Re: Tratamiento de dos tablas a la vez
|
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:#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
|
|
|
1087
|
Programación / Programación C/C++ / Re: Como limitar un resultado en un ordenamiento de Burbuja
|
en: 27 Diciembre 2012, 16:04 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: for (i=0; i< Tam; i++) { if (array[i]>=80) break; cout <<array[i])<<" "; }
Saluditos!.
|
|
|
1088
|
Programación / Programación C/C++ / Re: Duda sobre utilización de variables
|
en: 20 Diciembre 2012, 16:44 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.
#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
|
Programación / Programación C/C++ / Re: lograr guardar resultados en un txt bucles o for ?
|
en: 17 Diciembre 2012, 21:36 pm
|
Bueno esto no serviria para hacer lo que busco ?
Si 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!.
|
|
|
|
|
|
|