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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: problema al leer gauss desde un archivo en: 14 Noviembre 2013, 19:36 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. FILE *ar;
  5.  
  6. int TotalLineas(char b[20])
  7. {
  8.    ar = fopen(b, "r");
  9.    int ch,num_lineas=0;
  10.    while((ch=fgetc(ar)) != EOF)
  11.      if (ch == '\n')
  12.         num_lineas++;
  13.       //  printf("LOLO   %i \n",num_lineas);
  14.    fclose(ar);
  15.    return (num_lineas+1);
  16. }
  17.  
  18.  
  19.  
  20. void LlenarMatriz(float a[50][50], int n,char b[20])
  21. {
  22.  
  23.     int i, j, k;
  24.  
  25.     ar = fopen(b,"r");
  26.  
  27.  
  28.     k=n;
  29.  
  30.     for(i=0; i<k; i++)
  31.     {
  32.              for(j=0; j<k+1; j++)
  33.              {
  34.                       fscanf(ar, "%f", &a[i][j]);
  35.  
  36.              }
  37.     }
  38.     fclose(ar);
  39. }
  40.  
  41. void ImpMatriz(float a[50][50], int n)
  42. {
  43.     int i, j;
  44.  
  45.     for(i=0; i<n; i++)
  46.     {
  47.              for(j=0; j<n+1; j++)
  48.              {
  49.                       printf("%f \t", a[i][j]);
  50.              }
  51.              printf("\n");
  52.     }
  53. }
  54.  
  55. void GaussJordan(float a[50][50],int n)
  56. {
  57.     float piv, x, y;
  58.     int i, j, k;
  59.  
  60.     for(i=0; i<n; i++)
  61.     {
  62.              for(j=0;j<n;j++)
  63.              {
  64.                       if(j != i)
  65.                       {
  66.                            x=a[i][j];
  67.                            y=a[j][i];
  68.                            for(k=0;k<n+1;k++)
  69.                                a[j][k]=a[j][k]/y*x+a[i][k];
  70.                       }
  71.              }
  72.     }
  73. }
  74.  
  75. int main()
  76. {
  77.    int n;
  78.    char b[20];
  79.    float a[50][50];
  80.      printf("Nombre del archivo: ");
  81.     gets(b);
  82.    n= TotalLineas(b);
  83.  
  84.  
  85.    LlenarMatriz(a,n,b);
  86.    ImpMatriz(a,n);
  87.    GaussJordan(a,n);
  88.  
  89.    system("pause");
  90.    return 0;
  91.  
  92. }




ya se puede leer la matriz para gauss , al parecer solo era un problema de punteros, ahora deberia poder aplicar aplicar gauss. ¿que deberia hacer para calcular gauss?
2  Programación / Programación C/C++ / problema al leer gauss desde un archivo en: 13 Noviembre 2013, 19:53 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.         FILE *ar;
  5.  
  6. int TotalLineas(char b[20])
  7. {
  8.    ar = fopen(b, "r");
  9.    int ch,num_lineas=0;
  10.    while((ch=fgetc(ar)) != EOF)
  11.      if (ch == '\n')
  12.         num_lineas++;
  13.    return (num_lineas+1);
  14. }
  15.  
  16.  
  17.  
  18. void LlenarMatriz(float a[50][50], int *n)
  19. {
  20.  
  21.     int i, j;
  22.     char b[20];
  23.  
  24.     printf("Nombre del archivo: ");
  25.     gets(b);
  26.     ar = fopen(b, "r");
  27.     *n= TotalLineas(b);
  28.  
  29.     for(i=0; i<*n; i++)
  30.     {
  31.              for(j=0; j<*n+1; j++)
  32.              {
  33.                       fscanf(ar, "%d", &a[i][j]);
  34.                     //  printf("%i", a[i][j]);
  35.              }
  36.     }
  37. }
  38.  
  39. void ImpMatriz(float a[50][50], int n)
  40. {
  41.     int i, j;
  42.  
  43.     for(i=0; i<n; i++)
  44.     {
  45.              for(j=0; j<n+1; j++)
  46.              {
  47.                       printf("%i\t", a[i][j]);
  48.              }
  49.              printf("\n");
  50.     }
  51. }
  52.  
  53. void GaussJordan(float a[50][50], int n)
  54. {
  55.     float piv, x, y;
  56.     int i, j, k;
  57.  
  58.     for(i=0; i<n; i++)
  59.     {
  60.              for(j=0; j<n; j++)
  61.              {
  62.                       if(j != i)
  63.                       {
  64.                            x = a[i][j];
  65.                            y = a[j][i];
  66.                            for(k=0; k<n+1; k++)
  67.                                     a[j][k] = a[j][k]/y*x+a[i][k];
  68.                       }
  69.              }
  70.     }
  71. }
  72.  
  73. int main()
  74. {
  75.    int n;
  76.    float a[50][50];
  77.    /*
  78.     printf("Ingrese la cantidad de filas y columnas: ");
  79.     scanf("%i", &n);
  80.     */
  81.  
  82.    LlenarMatriz(a,&n);
  83.    ImpMatriz(a,n);
  84.    GaussJordan(a,n);
  85.  
  86.    system("pause");
  87.    return 0;
  88.  
  89. }
  90.  



El codigo me tira una matriz de 0 por cada elemento en el archivo de texto desde el que leo la matriz.
¿alguna idea de que podria ser?



ejemplo de matriz en archivo.txt (el archivo se llamara "matriz.txt" :


+6 -2 +2 +4 +12
 0 -4  +2 +2 +10
 0  0  +2  -5    -9
 0  0    0  -3    -3
 
3  Programación / Programación C/C++ / Re: Enviar un archivo a una funcion "leer matriz" en c en: 13 Noviembre 2013, 18:15 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. FILE *Leer(){
  6. FILE *superfacil;
  7. superfacil=fopen("datos.txt", "r" );
  8. return (superfacil);
  9. }  
  10.  
  11. int TotalLines(){
  12. FILE *arch;
  13. arch=fopen("datos.txt","r");
  14.   int ch,num_lineas = 0;
  15.   while ((ch = fgetc(arch)) != EOF)
  16.      if (ch == '\n')
  17.         num_lineas++;
  18.    return(num_lineas+1);
  19. }
  20.  
  21. int main() {
  22. int a[10][10],b[10],n,i,j,k,l;
  23. float t;
  24.  
  25. FILE *azucar;
  26. azucar=Leer();
  27. n=TotalLines();
  28.  
  29. for(i=0;i<n;i++){
  30. for(j=0;j<n;j++){
  31. fscanf(azucar,"%d",&a[i][j]);
  32. }
  33. fscanf(azucar,"%d",&b[i]);
  34. }
  35. for(i=0;i<n;i++){
  36. for(j=0;j<n;j++)
  37. printf("%d\t",a[i][j]);
  38.  
  39. printf("%d\n",b[i]);
  40. }
  41.  
  42. system("pause");
  43. return 0;
  44.  
  45. }
  46.  





de esta forma puedo leer una matriz, sin embargo hallar el codigo de c para solucionarlo por gauss jordan me ha sido complicado, tira errores cuando intento loss que estan ya hecho o cuando intento modificar esos archivos para qu funcionen en mi codigo.... ¡que codigo me servivria para aplicar gauss gordan a la matriz que leo adentro del archivo?
4  Programación / Programación C/C++ / Re: Enviar un archivo a una funcion "leer matriz" en c en: 12 Noviembre 2013, 20:44 pm
#include <stdio.h>
#include <stdlib.h>


void LlenarMatriz (float s[50][50], int *t)
{
     int i, j, c;
     char a[20];
     
     FILE *arch;
     gets(a);
     arch = fopen("matriz.txt","r");
     fscanf (arch, "%i", c);
      *t=c;
     
     while (!feof(arch))
     
   
     
     for (i=0; i<c; i++)
         for (j=0; j<c; j++)
             fscanf (arch, "%f", &s[j]);
     
     fclose (arch);
}

void EscribirMatriz (float s[50][50], int t)
{
     int i, j, c;
     t=c;
     
     for (i=0; i<c; i++)
         for (j=0; j<c; j++)
             printf ("%d", s[j]);
}


void GaussJordan (float s[50][50], int t)
{
     float piv, x, y;
     int i, ii, j, m;
         for (i=0; i<t; i++)
         {
             for (ii=0; ii<t; ii++)
             {
                 if (ii != i)
                 {
                        x = -s[ii];
                        y = s[ii];
                        for (j=0; j<t+1; j++)
                            s[ii][j] = -s[ii][j]/y*x+s[j];
                 }
             }
         }
}


int main()
{
    int n;
    float a[50][50];
   
    printf("Trabajo realizado por los Alumnos por miMIKASA EREN \n\n");
    printf("Ingrese el tamaño de la Matriz: \n");
    scanf ("%d", &n);
         
    LlenarMatriz(a,&n);
    EscribirMatriz(a,n);
    GaussJordan(a,n);
    EscribirMatriz(a,n);
   
    return 0;
}




el codigo compila , pero se cierra cuando ingreso el tamaño de la matriz, por ejemplo, colo que la matriz tendra un tamaño 3, pero se cierra la consola luego de eso... quisiera saber cual es el problema
5  Programación / Programación C/C++ / Re: Enviar un archivo a una funcion "leer matriz" en c en: 12 Noviembre 2013, 20:19 pm
Muchas gracias, aunque el problema esta en que no puedo hacer uso de variables globales. ademas debe calcular la matriz (sist.de ecuaciones) por el metodo de gauss jordan)
6  Programación / Programación C/C++ / Enviar un archivo a una funcion "leer matriz" en c en: 11 Noviembre 2013, 16:31 pm
Hola, tengo una duda, el el caso de que quisiera leer una matriz dentro de un archivo ".txt" desde una funcion... ¿como seria posible? , es decir tengo mi funcion


"int main()"

y dentro de esta funcion llamo a una funcion que se llama "leer matriz()"

pero nose como enviar ese archivo "matriz.txt" con la matriz a la funcion para que me lo lea desde adentro de la funcion "leermatriz()"


agradeceria una ayuda de antemano muchas gracias


PD: lo que estaria adentro del archivo "matriz.txt"
seria algo asi:



1 3 4  7
2 4 8  8
5 8 10 9
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines