Título: Ayuda con codigo que resuelve matrices por metodo gauss Publicado por: flosan17 en 6 Marzo 2017, 15:55 pm Porfavor necesito saber que sginifca cada parte del codigo, que quiere decir cada linea o que funcion cumple, que funcion tiene en el programa cada linea de codigo
#include <stdio.h> void PideDatos(int *Dim, float Sist[][102]); void EscribeDatos(int Dim, float Sist[][102]); void ResuelveGauss(int Dim, float Sist[][102]); int main(void) { int C,Dimension; float Sistema[101][102]; PideDatos(&Dimension,Sistema); printf("\n\n\nEl SISTEMA introducido es el siguiente: \n\n"); EscribeDatos(Dimension,Sistema); ResuelveGauss(Dimension,Sistema); printf("\n\n\nLas soluciones son:\n"); for(C=1;C<=Dimension;C++) printf("\n X%d=%f\n",C,Sistema[C][Dimension+1]); scanf(""); return(0); } void PideDatos(int *Dim,float Sist[][102]) { int A,B; printf("\n\n SOLUCION ECUACIONES LINEALES METODO GAUSS"); printf("\n\n\n Indica el numero de incognitas (menos de 100): "); scanf("%d",&*Dim); printf("\n\n INTRODUZCA EL NUMERO EN LA POSICION DE LA MATRIZ A LA QUE CORRESPONDA (A|B):"); printf("\n\n MATRIZ A:\n"); for(A=1;A<=*Dim;A++) for(B=1;B<=*Dim;B++){ printf("\n Termino A(%d,%d):",A,B); scanf("%f",&Sist[A]);} printf("\n\n\n VECTOR B:\n"); for(A=1;A<=*Dim;A++){ printf("\n Termino B(%d):",A);scanf("%f",&Sist[A][*Dim+1]); }} void EscribeDatos(int Dim, float Sist[][102]) { int A,B; for(A=1;A<=Dim;A++){ for(B=1;B<=(Dim+1);B++){ printf("%7.2f",Sist[A]); if(B==Dim) printf(" |");} printf("\n"); }} void ResuelveGauss(int Dim, float Sist[][102]) { int NoCero,Col,C1,C2,A; float Pivote,V1; for(Col=1;Col<=Dim;Col++){ NoCero=0;A=Col; while(NoCero==0){ if((Sist[A][Col]>0.0000001)||((Sist[A][Col]<-0.0000001))){ NoCero=1;} else A++;} Pivote=Sist[A][Col]; for(C1=1;C1<=(Dim+1);C1++){ V1=Sist[A][C1]; Sist[A][C1]=Sist[Col][C1]; Sist[Col][C1]=V1/Pivote;} for(C2=Col+1;C2<=Dim;C2++){ V1=Sist[C2][Col]; for(C1=Col;C1<=(Dim+1);C1++){ Sist[C2][C1]=Sist[C2][C1]-V1*Sist[Col][C1];} }} for(Col=Dim;Col>=1;Col--) for(C1=(Col-1);C1>=1;C1--){ Sist[C1][Dim+1]=Sist[C1][Dim+1]-Sist[C1][Col]*Sist[Col][Dim+1]; Sist[C1][Col]=0; } } |