domingo, 27 de abril de 2025

02.- Programación I - Regla de Cramer (Sistema de tres ecuaciones con tres incognitas)

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