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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 ... 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 [92] 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 ... 132
911  Programación / Programación C/C++ / Re: ayuda programa en c++ en: 6 Abril 2013, 19:25 pm
Antes que nada, para "colgar" un código primero elige donde pone "GeSHi" las etiquetas de C++, aunque el código sea en C,  y en medio de las etiquetas que aparecen "pegas" tu código, así sale bien  y  coloreado y es más fácil de seguir.

Como efecto no deseado, al no poner las etiquetas la matriz M, aparece como M[j], cuando en realidad las tienes bien puestas como
Código:
M[i][j]
Cosas de no usar las susodichas etiquetas.

Por lo demás el código que posteas está muy verde todavía. Pero para  que no se diga que no ayudamos y siendo lo siguiente lo que quieres, si no he entendido mal:


Código
  1. que numero de filas desea  para la matriz?:
  2. 2
  3. que numero de columnas de la matriz:
  4. 4
  5.  
  6. llenado de matriz:
  7. Inserte num[0][0]: 1
  8. Inserte num[0][1]: 2
  9. Inserte num[0][2]: 3
  10. Inserte num[0][3]: 3
  11. El numero esta repetido, ingrese otro
  12. Inserte num[0][3]: 4
  13. Inserte num[1][0]: 5
  14. Inserte num[1][1]: 6
  15. Inserte num[1][2]: 7
  16. Inserte num[1][3]: 7
  17. El numero esta repetido, ingrese otro
  18. Inserte num[1][3]: 8
  19.  
  20. la matriz:
  21. [6][2][3][6]
  22. [6][6][7][6]
  23.  

Te paso el código con "una pequeña maldad", hago uso de un array innecesario. Es para no dártelo todo hecho y que al menos veas como puedes hacerlo directamente al introducir los elementos de la matriz   ;)

Código
  1. #include <stdio.h>
  2.  
  3. #define tam 10
  4. void capturar (int M[tam][tam], int f, int c);
  5. void mostrar (int M[tam][tam], int f, int c);
  6.  
  7. int main ()
  8. {
  9. int M [tam] [tam];
  10. int f, c, numero;
  11. printf ("que numero de filas desea  para la matriz?: \n");
  12. scanf("%d",&f);
  13. printf ("que numero de columnas de la matriz: \n");
  14. scanf("%d",&c);
  15.  
  16. printf ("\nllenado de matriz: \n");
  17. capturar(M, f, c);
  18. printf ("\nla matriz: ");
  19. mostrar(M, f, c);
  20. return(0);
  21. }
  22. void capturar (int M[tam][tam], int f, int c)
  23. {
  24.     int i,j=0,k=0,l=0;
  25.     int numeros[f*c];
  26.     for( i = 0; i < f*c  ; i++){
  27.            if (l==c ){
  28.                k++;
  29.                l=0;
  30.            }
  31.            printf ("Inserte num[%d][%d]: ",k,l);
  32.            l++;
  33.            scanf ("%d",&numeros[i]);
  34.  
  35.            for( j = i-1; j >=0 ; j--){
  36.                if(numeros[i] == numeros[j]){
  37.                    printf("El numero esta repetido, ingrese otro\n");
  38.                    i--;l--;
  39.                    break;
  40.                }
  41.        }
  42.    }
  43.    i=0;
  44.    for (j=0;j<f;j++){
  45.        for (k=0;k<c;k++){
  46.            if ( j==0 && (k==0 ||  k==c-1 )|| j==f-1 && (k==0 ||  k==c-1))
  47.                M[j][k]=6;
  48.            else
  49.                M[j][k]=numeros[i];
  50.            i++;
  51.        }
  52.    }
  53. }
  54.  
  55. void mostrar (int M[tam][tam], int f, int c)
  56. {
  57. int i,j;
  58. for ( i = 0 ; i < f ; i++)
  59. {
  60.  printf ("\n");
  61.  for ( j =0 ; j < c ; j++)
  62.  {
  63.   printf ("[%d]",M[i][j] );
  64.  }
  65. }
  66. }

Tampoco he modificado "casi" el código que posteas, aunque esa forma de declarar la matriz a mí no me gusta. Pero bueno, para que vayas adelantando la tarea creo que tienes material ya.

Saluditos!. ....
912  Programación / Programación C/C++ / Re: Ayuda con código para re ordenar array en: 6 Abril 2013, 14:43 pm
"Sin dudarlo un instante" me quedo con el segundo. Es una simplificación del mío al mirar un caracter y el siguiente y decidir en función de ello lo que hacer.

Código
  1. #include<stdio.h>
  2.  
  3. int main(){
  4.  
  5.    int i,j=0,k=0,cont=0;
  6. char cadena[80]="01ab210c213qwe31zxc213";
  7.    char array_de_cadena[40][6] = {{0}};
  8. puts("01ab210c213qwe31zxc213\n");
  9.    for (i=0;cadena[i]!='\0';i++){
  10.         array_de_cadena[j][k]=cadena[i];
  11.        if ((cadena[i]>47 && cadena[i]<58) ^ (cadena[i+1]>47 && cadena[i+1]<58)){
  12.                j++;
  13.                k=0;
  14.        }
  15.            else
  16.                k++;
  17.        }
  18.    for (i=0;i<=j;i++)
  19.        printf ("%s \n",array_de_cadena[i]);
  20.    return 0;
  21. }

Muy agudo rir.
Sólo me queda la duda de no introducir el caracter nulo al final de cada cadena.


Saluditos!. ...

P.D: Lo que no entiendo es a cuento de que vino el código que habías posteado anteriormente  :silbar:
913  Programación / Programación C/C++ / Re: Ayuda con código para re ordenar array en: 5 Abril 2013, 23:20 pm
eiiiii no vale poner varias cosas en una línea para que parezca más corto XD


 ;-) ;-) ;-) Lo "rectifico" y aún así, además de corto es "simple" siguiendo el principio de la navaja de Ockham: «en igualdad de condiciones, la explicación más sencilla suele ser la correcta»

Código
  1. #include<stdio.h>
  2.  
  3. int main(){
  4.  
  5.    int i,j=0,k=0,cont=0;
  6. char cadena[80]="01ab210c213qwe31zxc213";;
  7.    char array_de_cadena[40][6] = {{0}};
  8. puts("01ab210c213qwe31zxc213\n");
  9.    for (i=0;cadena[i]!='\0';i++){
  10.        if (cadena[i]>47 && cadena[i]<58 ){
  11.            if (cont==1){
  12.                array_de_cadena[j][k]='\0';
  13.                j++;
  14.                k=0;
  15.            }
  16.        array_de_cadena[j][k]=cadena[i];
  17.        k++;
  18.        cont=2;
  19.        }
  20.        else {
  21.            if (cont==2){
  22.                array_de_cadena[j][k]='\0';
  23.                j++;
  24.                k=0;
  25.            }
  26.            array_de_cadena[j][k]=cadena[i];
  27.            k++;
  28.            cont=1;
  29.        }
  30.   }
  31.    for (i=0;i<=j;i++)
  32.        printf ("%s \n",array_de_cadena[i]);
  33.    return 0;
  34. }
  35.  

Un abrazo y Saluditos!. ....

P.D: Sería más corto con el uso de sscanf, pero no sería más simple ni en igualdad de condiciones respecto a los propuestos.
914  Programación / Programación C/C++ / Re: Programa para pasar de numero decimal a coma flotante en: 5 Abril 2013, 19:15 pm


Esto sería correcto cuando lo pasa a notación cientifica ?



Justito es lo correcto.

Saluditos!. ....
915  Programación / Programación C/C++ / Re: Ayuda con código para re ordenar array en: 5 Abril 2013, 18:28 pm
Creo que con un contador, bandera o flag y un array para guardar los parciales "va que chuta":

Código
  1. 01ab210c213qwe31zxc213
  2.  
  3. 01
  4. ab
  5. 210
  6. c
  7. 213
  8. qwe
  9. 31
  10. zxc
  11. 213
  12. Presione una tecla para continuar . . .
  13.  

Código
  1.  
  2. #include<stdio.h>
  3.  
  4. int main(){
  5.  
  6.    int i,j=0,k=0,cont=0;
  7.    char cadena[80]="01ab210c213qwe31zxc213";;
  8.    char array_de_cadena[40][6] = {{0}};
  9.    puts("01ab210c213qwe31zxc213\n");
  10. //scanf("%s", cadena);
  11. for (i=0;cadena[i]!='\0';i++){
  12.        if (cadena[i]>47 && cadena[i]<58 ){
  13.            if (cont==1){
  14.                array_de_cadena[j][k]='\0';j++;k=0;
  15.            }
  16.        array_de_cadena[j][k]=cadena[i];k++;cont=2;
  17.        }
  18.        else {
  19.            if (cont==2){
  20.                array_de_cadena[j][k]='\0';j++;k=0;
  21.            }
  22.            array_de_cadena[j][k]=cadena[i];k++;cont=1;
  23.        }
  24.   }
  25.    for (i=0;i<=j;i++)
  26.        printf ("%s \n",array_de_cadena[i]);
  27.    return 0;
  28. }
  29.  

Saluditos!. ...
916  Programación / Programación C/C++ / Re: ¿Qué hago mal en el uso de for? en: 4 Abril 2013, 23:42 pm
Creo que sería más lógico averiguar si el numero1 es  o no múltiplo de tres, y si no lo es tomar el valor del correspondiente múltiplo y ya en el for ir de tres en tres, vamos esto:

 
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int numero1,numero2, multiplos3 =0,suma=0;
  7.    cout << "Escribe el primer numero: " << endl;
  8.    cin >> numero1;
  9.    cout << "Escribe el segundo numero: " << endl;
  10.    cin >> numero2;
  11.    if (numero1%3!=0)
  12.        numero1=numero1-numero1%3 +3;
  13.    for(int i=numero1;i <= numero2; i+=3) {
  14.            cout << i << "   ";
  15.            multiplos3++;
  16.            suma+=i;
  17.        }
  18.        cout <<endl<<"Los multiplos de 3 comprendidos entre " << numero1 <<" y "
  19.    << numero2 << " son: " << multiplos3<<endl;
  20.    cout <<endl<<"Y la suma de todoe ellos es " <<suma<<endl;
  21.    return 0;
  22. }
  23.  
  24.  

Saluditos!. ...
917  Programación / Programación C/C++ / Re: como puedo hacer un codigo que imprima los primero 100 numero pares en c++ en: 4 Abril 2013, 16:43 pm

Sin incluir al cero:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. unsigned short N;
  7. cout<<"Cuantes pares deseas ver? ";
  8. cin>>N;
  9.  
  10. for(int i=2; i<=N*2; i+=2)
  11. cout<<" "<<i;
  12.  
  13. return 0;
  14. }
  15.  

Saluditos!. ...
918  Programación / Programación C/C++ / Re: Cambiar la impresion de un arreglo. en: 1 Abril 2013, 00:28 am
.......................................
 ahora tengo que convertir los que son pares en "0" y los impares en "1",
.................................................

Lo normal es con un if -else, tipo:

Código
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <conio.h>
  4. using namespace std;
  5.  
  6. int pasc[' ']={0};
  7. int x=0,n;
  8. void llenar()
  9. {
  10.  
  11. cout<<"\tIngrese hasta que linea: ";
  12. cin>>n;
  13. }
  14. void pascalizar()
  15. {
  16.  
  17. for (int i=0; i<n ; i++)
  18. {
  19.  for (int j=x; j>=0; j--)
  20.  {
  21.   if(j==x || j==0)
  22.   {
  23.    pasc[j] = 1;
  24.   }
  25.   else
  26.   {
  27.    pasc[j] = pasc[j] + pasc[j-1];
  28.   }
  29.  }
  30.  x++;
  31.  cout<<"\n";
  32.   for(int j=0; j<x; j++)
  33.   {
  34.    if (pasc[j]%2==0)
  35.        cout<<"\t"<<0;
  36.    else
  37.        cout<<"\t"<<1;
  38.   }
  39. }
  40. }
  41. int main (void)
  42. {
  43.  
  44. llenar();
  45. //clrscr();
  46. pascalizar();
  47. getch();
  48. return 0;
  49. }
  50.  

Te saldría esto:

Código
  1. Ingrese hasta que linea: 18
  2.  
  3. 1
  4. 1       1
  5. 1       0       1
  6. 1       1       1       1
  7. 1       0       0       0       1
  8. 1       1       0       0       1       1
  9. 1       0       1       0       1       0       1
  10. 1       1       1       1       1       1       1       1
  11. 1       0       0       0       0       0       0       0       1
  12. 1       1       0       0       0       0       0       0       1       1
  13. 1       0       1       0       0       0       0       0       1       0       1
  14. 1       1       1       1       0       0       0       0       1       1       1       1
  15. 1       0       0       0       1       0       0       0       1       0       0       0       1
  16. 1       1       0       0       1       1       0       0       1       1       0       0       1       1
  17. 1       0       1       0       1       0       1       0       1       0       1       0       1       0       1
  18. 1       1       1       1       1       1       1       1       1       1       1       1       1       1       1       1
  19. 1       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       1
  20. 1       1       0       0       0       0       0       0       0       0       0       0       0       0       0       0       1       1

Aunque no me negaras que esto otro es más triángulo de Pascal:

Código
  1.                                                              1
  2.                                                           1     1
  3.                                                        1     2     1
  4.                                                     1     3     3     1
  5.                                                  1     4     6     4     1
  6.                                               1     5    10    10     5     1
  7.                                            1     6    15    20    15     6     1
  8.                                         1     7    21    35    35    21     7     1
  9.                                      1     8    28    56    70    56    28     8     1
  10.                                   1     9    36    84   126   126    84    36     9     1
  11.                                1    10    45   120   210   252   210   120    45    10     1
  12.                             1    11    55   165   330   462   462   330   165    55    11     1
  13.                          1    12    66   220   495   792   924   792   495   220    66    12     1
  14.                       1    13    78   286   715  1287  1716  1716  1287   715   286    78    13     1
  15.                    1    14    91   364  1001  2002  3003  3432  3003  2002  1001   364    91    14     1
  16.                 1    15   105   455  1365  3003  5005  6435  6435  5005  3003  1365   455   105    15     1
  17.              1    16   120   560  1820  4368  8008 11440 12870 11440  8008  4368  1820   560   120    16     1
  18.           1    17   136   680  2380  6188 12376 19448 24310 24310 19448 12376  6188  2380   680   136    17     1
  19.        1    18   153   816  3060  8568 18564 31824 43758 48620 43758 31824 18564  8568  3060   816   153    18     1
  20.     1    19   171   969  3876 11628 27132 50388 75582 92378 92378 75582 50388 27132 11628  3876   969   171    19     1

Perdón, esto en tu caso:

Código
  1.                                                              1
  2.                                                           1     1
  3.                                                        1     0     1
  4.                                                     1     1     1     1
  5.                                                  1     0     0     0     1
  6.                                               1     1     0     0     1     1
  7.                                            1     0     1     0     1     0     1
  8.                                         1     1     1     1     1     1     1     1
  9.                                      1     0     0     0     0     0     0     0     1
  10.                                   1     1     0     0     0     0     0     0     1     1
  11.                                1     0     1     0     0     0     0     0     1     0     1
  12.                             1     1     1     1     0     0     0     0     1     1     1     1
  13.                          1     0     0     0     1     0     0     0     1     0     0     0     1
  14.                       1     1     0     0     1     1     0     0     1     1     0     0     1     1
  15.                    1     0     1     0     1     0     1     0     1     0     1     0     1     0     1
  16.                 1     1     1     1     1     1     1     1     1     1     1     1     1     1     1     1
  17.              1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1
  18.           1     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     1
  19.        1     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     1
  20.     1     1     1     1     0     0     0     0     0     0     0     0     0     0     0     0     1     1     1     1

Saluditos!....
919  Programación / Programación C/C++ / Re: [C] Determinante de orden N en: 31 Marzo 2013, 15:18 pm
.......................................
Pero para diagonalizar la matriz... xD No sabría como hacerlo de forma eficiente.
........................................

No es tan complicado, al menos sin pivote. Un ejemplo:

Código
  1. /* Función para triangularizar una matriz */
  2. /************************************************/
  3. int triang(int N, double **a, double *b)
  4. {
  5.    int i, j, k, error;
  6.    double fac;
  7.    for (k=0; k<N-1; k++)
  8.        for (i=k+1; i<N; i++)
  9.            {
  10.                if (fabs(a[k][k])<EPS) return -1;
  11.                fac=-a[i][k]/a[k][k];
  12.                 for (j=k; j<N; j++)
  13.                    {
  14.                        a[i][j]+=a[k][j]*fac;
  15.                    }
  16.                b[i]=b[i]+b[k]*fac;
  17.  
  18.            }return 1;
  19. }
  20. /* Función para resolver un sistema triangular superior */
  21. /************************************************/
  22.  

Saluditos!. ...
920  Programación / Programación C/C++ / Re: [C] Determinante de orden N en: 30 Marzo 2013, 05:11 am

El determinante es una operacion complej, hacer un determinante de 20x20 puede trardar semanas (y me quedo corto).

Es que el sistema que utilizan es de "fuerza bruta".

Para hacerlo razonable habría que usar Gauss con/sin pivotes.

Saluditos!, ....
Páginas: 1 ... 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 [92] 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines