Que tal, Estoy iniciándome en esto de la programación y me han dejado investigar un programa que resuelva ecuaciones por el método de gauss. Quisiera saber si alguien puede ayudarme a poner comentarios a lo largo del programa para comprender el funcionamiento del mismo en cada una (o la mayoría) del código fuente que les presento a continuación:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void captura(double a[50][50],int n)
{
int c,f;
for(c=0;c<n;c++)
{
for(f=0;f<n+1;f++)
{
if(f<n)
{
system("cls");
cout<<"\n\n\n\n Captura de la matriz :";
cout<<"\n\n X"<<f+1<<" : ";
cin>>a[c][f];
}
else
{
system("cls");
cout<<"\n\n\n\n Captura de la matriz :";
cout<<"\n\n Constante = ";
cin>>a[c][f];
}
}
}
}
void imprimir (double a[50][50],int n)
{
int c,f;
cout<<"\n\n\n Matriz de "<<n<<" x "<<n<<"\n\n\n ";
for(c=0;c<n;c++)
{
for(f=0;f<n+1;f++)
{
if(f<n)
{
cout<<" "<<a[c][f];
}
else
{
cout<<" = "<<a[c][f];
}
}
cout<<"\n ";
}
}
void metodogaussjordan (double a[50][50], int n)
{
int e,ee,c,f,cc,ff;
double r[50][50],d,g,b;
e = 0;
for(c=0;c<n;c++)
{
b=a[c][c];
for(f=0;f<n+1;f++)
{
a[c][f]=(a[c][f])/b;
r[c][f]=a[c][f];
}
cout<<"\n R"<<c+1<<" = R"<<c+1<<"/"<<b;
cout<<"\n\n";
for(ee=0;ee<n;ee++)
{
for(ff=0;ff<n+1;ff++)
{
cout<<" "<<a[ee][ff];
}
cout<<"\n";
}
cout<<"\n\n Suma de renglones multiplicados por pibote\n\n";
for(cc=e;cc<n;cc++)
{
d=a[cc+1][c];
for(ff=0;ff<n+1;ff++)
{
r[cc+1][ff]=((-1*d)*(a[c][ff]))+(a[cc+1][ff]);
a[cc][ff]=r[cc][ff];
}
}
e=e+1;
if(c>0 )
{
for(cc=0;cc<c;cc++)
{
g=r[cc][c];
for(ff=0;ff<n+1;ff++)
{
r[cc][ff]=((-1*g)*(a[c][ff]))+(a[cc][ff]);
a[cc][ff]=r[cc][ff];
}
}
}
if(c<n)
{
for(cc=0;cc<n;cc++)
{
for(ff=0;ff<n+1;ff++)
{
cout<<" "<<r[cc][ff];
}
cout<<"\n";
}}
cout<<"\n";
}
}
int main ()
{
int n,f,c,cc,ff,e,ee,sn;
double a[50][50],b,d,g,r[50][50];
do{system("cls");
cout<<"\n\n\n\n\n BIENVENIDO";
cout<<"\n Eliminacion de GAUSS JORDAN de una Matriz n x n \n\n\n";
cout<<"\n Por favor teclee el tamaño de la matriz : ";
cin>>n;
captura(a,n);
imprimir(a,n);
cout<<"\n\n\n\n";
metodogaussjordan(a,n);
cout<<"\n\n";
for(c=0;c<n; c++)
{
cout<<"\n\n X"<<c+1<<" = "<<a[c][n];
}
getch();
do{system("cls");
cout<<"\n\n\n ¿ DESEA RESOLVER OTRO SISTEMA DE ECUACIONES ?\n\n\n\n 1.- Si \n\n 2.- NO(salir)\n\n OPC. : ";
cin>>sn;
}while(sn<1 || sn>2);
}while(sn<2);
return 0;
}
Sería de gran ayuda su apoyo. Mil gracias y saludos.
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void captura(double a[50][50],int n)
{
int c,f;
for(c=0;c<n;c++)
{
for(f=0;f<n+1;f++)
{
if(f<n)
{
system("cls");
cout<<"\n\n\n\n Captura de la matriz :";
cout<<"\n\n X"<<f+1<<" : ";
cin>>a[c][f];
}
else
{
system("cls");
cout<<"\n\n\n\n Captura de la matriz :";
cout<<"\n\n Constante = ";
cin>>a[c][f];
}
}
}
}
void imprimir (double a[50][50],int n)
{
int c,f;
cout<<"\n\n\n Matriz de "<<n<<" x "<<n<<"\n\n\n ";
for(c=0;c<n;c++)
{
for(f=0;f<n+1;f++)
{
if(f<n)
{
cout<<" "<<a[c][f];
}
else
{
cout<<" = "<<a[c][f];
}
}
cout<<"\n ";
}
}
void metodogaussjordan (double a[50][50], int n)
{
int e,ee,c,f,cc,ff;
double r[50][50],d,g,b;
e = 0;
for(c=0;c<n;c++)
{
b=a[c][c];
for(f=0;f<n+1;f++)
{
a[c][f]=(a[c][f])/b;
r[c][f]=a[c][f];
}
cout<<"\n R"<<c+1<<" = R"<<c+1<<"/"<<b;
cout<<"\n\n";
for(ee=0;ee<n;ee++)
{
for(ff=0;ff<n+1;ff++)
{
cout<<" "<<a[ee][ff];
}
cout<<"\n";
}
cout<<"\n\n Suma de renglones multiplicados por pibote\n\n";
for(cc=e;cc<n;cc++)
{
d=a[cc+1][c];
for(ff=0;ff<n+1;ff++)
{
r[cc+1][ff]=((-1*d)*(a[c][ff]))+(a[cc+1][ff]);
a[cc][ff]=r[cc][ff];
}
}
e=e+1;
if(c>0 )
{
for(cc=0;cc<c;cc++)
{
g=r[cc][c];
for(ff=0;ff<n+1;ff++)
{
r[cc][ff]=((-1*g)*(a[c][ff]))+(a[cc][ff]);
a[cc][ff]=r[cc][ff];
}
}
}
if(c<n)
{
for(cc=0;cc<n;cc++)
{
for(ff=0;ff<n+1;ff++)
{
cout<<" "<<r[cc][ff];
}
cout<<"\n";
}}
cout<<"\n";
}
}
int main ()
{
int n,f,c,cc,ff,e,ee,sn;
double a[50][50],b,d,g,r[50][50];
do{system("cls");
cout<<"\n\n\n\n\n BIENVENIDO";
cout<<"\n Eliminacion de GAUSS JORDAN de una Matriz n x n \n\n\n";
cout<<"\n Por favor teclee el tamaño de la matriz : ";
cin>>n;
captura(a,n);
imprimir(a,n);
cout<<"\n\n\n\n";
metodogaussjordan(a,n);
cout<<"\n\n";
for(c=0;c<n; c++)
{
cout<<"\n\n X"<<c+1<<" = "<<a[c][n];
}
getch();
do{system("cls");
cout<<"\n\n\n ¿ DESEA RESOLVER OTRO SISTEMA DE ECUACIONES ?\n\n\n\n 1.- Si \n\n 2.- NO(salir)\n\n OPC. : ";
cin>>sn;
}while(sn<1 || sn>2);
}while(sn<2);
return 0;
}
Sería de gran ayuda su apoyo. Mil gracias y saludos.