//Bibliotecas
#include <iostream.h>
#include <time.h>
#include <conio.h>
#include <dos.h>
#define maxi 20
//Variables globales
float matriz[maxi][maxi],b[maxi][maxi],inter;
time_t t; //variable de la hora hora
//Procedimientos
void impr_matriz(float x, float y,int l);//Procedimiento que imprime la matriz
void titulo(); //Procedimiento para la impresion del titulo
void salida();//Salida del programa
void solucion(int a,int l); //Procedimiento para la solucion
void cond(float a);
//Funcion principal
void main ()
{
int n,i,j,a,lon,in,z,c,fin,decear,elige;//variables locales
char modi,inicio,compr,otro;
inicio:
clrscr();
titulo();
cout<<"\nCuantas soluciones tendra el sistema [ ]";
gotoxy(39,6);
cin>>n;
cond(n);
if (n<=0)
{
goto inicio;
}
else
{
for (i=1;i<=n;i++)
{
for (j=1;j<=n+1;j++)
{
cout<<"introduce el valor ["<<i<<","<<j<<"]: ";
cin>>matriz[i][j];
}
}
clrscr();
titulo();
cout<<"\nLa matriz es:\n";
impr_matriz(i,j,n);
z=n+1;
do
{
if (matriz[1][1]==0)
{
c=z-1;
for (i=2;i<=c;i++)
{
if(matriz[i][1]!=0)
{
for (j=1;j<=z;j++)
{
inter=matriz[i][j];
//cout<<"inter vale: "<<matriz[i][j]<<"\t";; getch();********************************
matriz[i][j]=matriz[1][j];
//cout<<"matriz[i][j] vale: "<<matriz[1][j]<<"\t"; getch();****************************
matriz[1][j]=inter;
//cout<<"matriz[1][j] vale: "<<inter<<"\n"; getch();**************************************
}
}
}
cout<<"\nPresiona una tecla para hacer intercambio de renglones..."; getch();
if (matriz[1][1]==0)
{
elige:
cout<<"\n\n\n\tEste sistema de ecuaciones no puede resolverse";
cout<<"\n\n\tDeceas:\n\t1. INGRESAR NUEVOS DATOS\n\t2. SALIR DEL PROGRAMA\n\tElige: ";
cin>>decear;
if(decear==1)
{
goto inicio;
}
else
{
if (decear==2)
{
goto fin;
}
else
{
if (decear!=1 && decear!=2)
{
clrscr();
titulo();
goto elige;
}
}
}
}
cout<<"\n\nLa nueva matriz a quedado:\n";
impr_matriz(i,j,n);
}
else
{
for (j=2;j<=z;j++)
{
for (i=2;i<=n;i++)
{
b[i-1][j-1]=matriz[i][j]-matriz[1][j]*matriz[i][1]/matriz[1][1];
//cout<<"b["<<i-1<<"]["<<j-1<<"]= "<<b[i-1][j-1]<<"\t"; getch();****************************
}
}
for (j=2;j<=z;j++)
{
b[n][j-1]=matriz[1][j]/matriz[1][1];
//cout<<"\nb["<<n<<"]["<<j-1<<"]=matriz"<<"["<<1<<"]["<<j<<"]/matriz"<<"[1][1]= "<<matriz[1][j]<<"/"<<matriz[1][1]<<"= "<<b[n][j-1]<<"\t"; getch();************
}//fin for j=2
z-=1;
for (j=1;j<=z;j++)
{
for (i=1;i<=n;i++)
{
matriz[i][j]=b[i][j];
// cout<<"matriz["<<i<<"]["<<j<<"]=b["<<i<<"]["<<j<<"]="<<matriz[i][j]<<"="<<b[i][j]<<"\t\n"; getch();************
}
}
}
}
while (z>1);
cout<<"Presiona una tecla para mostrar la solucion al sistema....";
getch();
cout<<"\n\t\t\tLa solucion es:\n ";
solucion(i,n);
cout<<"\n\n\nDeseas calcular otro sistema de ecuaciones (S/N): ";
cin>>otro;
if (otro=='s'||otro=='S')
{
goto inicio;
}
else
{
salida();
}
}
getch();
fin:
clrscr();
salida();
getch();
}
//Funcion secundaria
void impr_matriz(float x, float y,int l)//Procedimiento impresion de la matriz
{
for(x=1;x<=l;x++)
{
for(y=1;y<=l+1;y++)
{
cout<<"\t"<<matriz[x][y];
}
cout<<"\n";
}
}
void titulo() //procedimiento para la impresion del titulo
{
cout<<" Sistemas de ecuaciones mediante metodo de Gauss-Jordan\n\n";
cout<<"HOY ES:";
time (&t); //da hora
gotoxy (10,4);
cout<<ctime(&t); //impresion de hora
}
void salida()//procedimiento para salir de programa
{
clrscr();
cout<<"Sistema de ecuaciones con matrices\n\n";
cout<<"Navarro Prado Sergio Dennis\n";
cout<<"\nPresiona una tecla para salir...";
}
void solucion(int a,int l)
{
for (a=1;a<=l;a++)
cout<<"\n\t\t\tX"<<a<<" = "<<matriz[a][1];
}
void cond(float a)
{
char b=65;
for(int i=65;i<90;i++)
{
if(a==b)
{
cout<<"nel";
}
}
}
//Fin del programa
NOTA
Bienvenido a este humilde Blog, donde podras encontrar codigos fuente de algunos algoritmos o bien programillas sencillos, aqui se reciben criticas constructivas a fin de mejorar el blog... Gracias
jueves, 29 de septiembre de 2011
Sistemas de ecuaciones con Metodo de Gauss Jordan en C++
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario