Compilador: Borland C++
Código:
#include <conio.h>
#include <math.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
class gauss
{
private:
int n,k,Piv,f,c,a[4][4];
float cero;
public:
gauss();
int Lee_Datos(float a[4][4]);
void Pivoteo(int n, int i, float a[4][4]);
void Mueve_Ceros(int n, int i, float a[4][4]);
void Imprime_matriz(int n, float a[4][4]);
void Comprobacion(int n, float a[4][4]);
};
gauss::gauss(){}
int gauss::Lee_Datos(float a[4][4])
{
int n;
int k,j;
cout<<"\n Número de Ecuaciones =";
cin>>n;
cout<<"\n";
cout<<"\n Sistema de Ecuaciones Lineales:";
cout<<"\n";
for ( k=0; k < n; k++)
{
for (j=0; j< n+1; j++)
{
cout<<"\n["<<(k+1)<<","<<(j+1)<<"] = ";
cin>>a[k][j];
}
cout<<endl;
}
return n;
}
void gauss::Pivoteo(int n, int i, float a[][4])
{
int j;
float Piv;
Piv = a[i][i];
for (j=i; j < n+1; j++)
a[i][j] = a[i][j]/ Piv;
}
void gauss::Mueve_Ceros(int n, int i, float a[][4])
{
int k,j;
float Cero;
for (k=0; k < n; k++)
{
if (k != i)
{
Cero = a[k][i];
for (j=i; j<n+1; j++)
a[k][j] = a[k][j] - (Cero * a[i][j]);
}
}
}
void gauss::Imprime_matriz(int n, float a[][4])
{
int f,c;
for (f=0; f< n; f++)
{
cout<<"\n";
for (c=0; c< n+1; c++)
{
if (c == n)
cout<<a[f][c];
else
cout<<"\t"<<a[f][c]<<"X"<<(c+1)<<"\t";
}
}
}
void gauss:: Comprobacion(int n, float a[4][4])
{
cout<<"Comprobacion"<<endl;
cout<<"I1\t"<<a[0][n]<<"\n";
cout<<"I2\t"<<a[1][n]<<"\n";
cout<<"I3\t"<<a[2][n]<<"\n";
}
int main()
{
int N;
int f;
int i;
float A[4][4];
gauss obj;
inicio:
cout<<"\n\tMétodo de eliminación de Gauss-Jordan";
N=obj.Lee_Datos(A);
for (i= 0; i < N; i++)
{
cout<<"\nRenglon"<<(i+1)<<"\n";
obj.Imprime_matriz(N,A);
cout<<"\n";
obj.Pivoteo(N,i,A);
obj.Imprime_matriz(N,A);
cout<<"\n";
obj.Mueve_Ceros(N,i,A);
obj.Imprime_matriz(N,A);
cout<<"\n";
}
cout<<"\n Resultado del sistema:\n";
for (f =0; f < N; f++)
cout<<" X "<<(f+1)<<" = \t"<<A[f][N]<<endl;
obj.Comprobacion(N,A);
getch();
clrscr();
goto inicio;
return 0;
}
NO FUNCIONA EN DEV-C++
ResponderEliminar