PROGRAMA
/* Programa para resolver sistemas de 3 ecuaciones
con 3 incógnitas aplicando el método de Cramer
elaborado por Carlos Ferrer
rev 26 de abril de 2025
*/
#include <iostream>
#include <locale.h>
using namespace std;
main()
{
int fila,col,i,j,k,m,fin;
int ma [4][5]={0};
int aux [6][4]={0};
int delta,deltax,deltay,deltaz;
string frase;
char delt=30;
setlocale (LC_ALL,"spanish");
cout <<"Método de Cramer resolver sistemas de tres ecuaciones"<<endl;
cout <<"con tres incógnitas"<<endl<<endl;
// Leemos los coeficientes de las tres ecuaciones
for (i=1;i<=3;i=i+1)
{
for (j=1;j<=4;j=j+1)
{
if (j==1)
{
frase="el coeficiente de la variable X";
}
if (j==2)
{
frase="el coeficiente de la variable Y";
}
if (j==3)
{
frase="el coeficiente de la variable Z";
}
if (j==4)
{
frase="el valor del resultado";
}
cout <<endl<<endl<<"Ingrese "<<frase<<" de la"<<endl;
cout <<"ecuación Nro. "<<i <<"= ";
cin >>ma[i][j];
system("cls");
// Presentamos las ecuaciones en la medida que se escriben
for (m=1;m<=i;m=m+1)
{
cout <<endl;
if (m==i)
{
fin=j;
}
else
{
fin=4;
}
for (k=1;k<=fin;k=k+1)
{
if(k==1)
{
cout <<ma[m][k]<<"x";
}
if(k==2 and ma[m][k]>0)
{
cout <<"+"<<ma[m][k]<<"y";
}
if(k==2 and ma[m][k]<0)
{
cout <<ma[m][k]<<"y";
}
if(k==3 and ma[m][k]>0)
{
cout <<"+"<<ma[m][k]<<"z";
}
if(k==3 and ma[m][k]<0)
{
cout <<ma[m][k]<<"z";
}
if(k==4)
{
cout <<"="<<ma[m][k];
}
}
}
}
}
cout <<endl<<endl;
//Imprimimos la matriz ingresada
for (fila=1;fila<=3;fila=fila+1)
{
cout <<"|";
for (col=1;col<=3;col=col+1)
{
cout <<ma[fila][col];
if (ma[fila][col]<0)
{
cout <<" ";
}
else
{
cout <<" ";
}
}
cout <<"|";
cout<<endl;
}
// Copiamos la matriz ingresada en la matriz aux
for (fila=1;fila<=3;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila][col]=ma[fila][col];
}
}
// Copiamos las dos primeras filas en las filas cuatro y cinco
for (fila=1;fila<=2;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila+3][col]=aux[fila][col];
}
}
// Calculamos delta
delta=0;
col=1;
for (fila=1;fila<=3;fila=fila+1)
{
delta=delta+ ((aux[fila][1]*aux[fila+1][2]*aux[fila+2][3])-(aux[fila][3]*aux[fila+1][2]*aux[fila+2][1]));
}
// Copiamos la matriz original en la matriz aux
for (fila=1;fila<=3;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila][col]=ma[fila][col];
}
}
//Copiamos los resultados en la primera columna
aux[1][1]=ma[1][4];
aux[2][1]=ma[2][4];
aux[3][1]=ma[3][4];
// Repetimos las dos primeras filas en las filas cuatro y cinco
for (fila=1;fila<=2;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila+3][col]=aux[fila][col];
}
}
// Calculamos delta x
deltax=0;
col=1;
for (fila=1;fila<=3;fila=fila+1)
{
deltax=deltax+ ((aux[fila][1]*aux[fila+1][2]*aux[fila+2][3])-(aux[fila][3]*aux[fila+1][2]*aux[fila+2][1]));
}
// Copiamos la matriz original en la matriz aux
for (fila=1;fila<=3;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila][col]=ma[fila][col];
}
}
//Copiamos los resultados en la segunda columna
aux[1][2]=ma[1][4];
aux[2][2]=ma[2][4];
aux[3][2]=ma[3][4];
// Repetimos las dos primeras filas en las filas cuatro y cinco
for (fila=1;fila<=2;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila+3][col]=aux[fila][col];
}
}
// Calculamos delta y
deltay=0;
col=1;
for (fila=1;fila<=3;fila=fila+1)
{
deltay=deltay+ ((aux[fila][1]*aux[fila+1][2]*aux[fila+2][3])-(aux[fila][3]*aux[fila+1][2]*aux[fila+2][1]));
}
// Copiamos la matriz original en la matriz aux
for (fila=1;fila<=3;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila][col]=ma[fila][col];
}
}
//Copiamos los resultados en la tercera columna
aux[1][3]=ma[1][4];
aux[2][3]=ma[2][4];
aux[3][3]=ma[3][4];
// Repetimos las dos primeras filas en las filas cuatro y cinco
for (fila=1;fila<=2;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila+3][col]=aux[fila][col];
}
}
// Calculamos delta z
deltaz=0;
col=1;
for (fila=1;fila<=3;fila=fila+1)
{
deltaz=deltaz+ ((aux[fila][1]*aux[fila+1][2]*aux[fila+2][3])-(aux[fila][3]*aux[fila+1][2]*aux[fila+2][1]));
}
// Presentamos resultados
cout <<endl<<delt<<"="<<delta<<endl;
cout <<delt<<"x="<<deltax<<endl;
cout <<delt<<"y="<<deltay<<endl;
cout <<delt<<"z="<<deltaz<<endl;
cout <<endl<<"El valor de la variable x="<<deltax/delta<<endl;
cout <<"El valor de la variable y="<<deltay/delta<<endl;
cout <<"El valor de la variable z="<<deltaz/delta<<endl;
}
No hay comentarios.:
Publicar un comentario