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++


//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

No hay comentarios:

Publicar un comentario