Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SavioRaires

Erro no sinal do resultado, como resolver?

Recommended Posts

Olá boa tarde a todos, estou com dois problemas em um programa para calcular sistemas lineares de ordem 2 ou 3 (pelo método de Cramer). O resultados estão corretos apenas o sinal que tá com erro, como solucionar esses problemas sem precisar multiplicar por -1? Desde já agradeço a atenção de todos.

 

#include <iostream>
#include <cstdlib>
using namespace std;
int main () {
float X[3][4], x[3], Dx;
int i, j, esc;
cout << "Digite 3 para solucionar sistemas de ordem 3 \nDigite 2 para solucionar sistemas de ordem 2 \n";
cin >> esc;
if (esc == 3){
cout << "Informe os coeficientes e os termos independentes das equacoes do sistema: \n";
for(i = 0; i<3; i++) {
for(j = 0; j<4; j++) {
cout << "Informe o valor de x" << i+1 << j+1 << ": ";
cin >> X[j];
}
}
Dx = (X[0][0]*X[1][1]*X[2][2] + X[1][0]*X[2][1]*X[0][2] + X[2][0]*X[0][1]*X[1][2]) - (X[0][2]*X[1][1]*X[2][0] + X[1][2]*X[2][1]*X[0][0] + X[0][1]*X[1][0]*X[2][2]);
if(Dx == 0){
cout << "Nao existe solucao real para esse sistema.";
}
else {
x[0] = ((X[0][1]*X[1][2]*X[2][3] + X[1][1]*X[2][2]*X[0][3] + X[0][2]*X[1][3]*X[2][1]) - (X[0][3]*X[1][2]*X[2][1] + X[1][3]*X[2][2]*X[0][1] + X[2][3]*X[0][2]*X[1][1]))/Dx;
x[1] = ((X[0][0]*X[1][2]*X[2][3] + X[1][0]*X[2][2]*X[0][3] + X[2][0]*X[0][2]*X[1][3]) - (X[0][3]*X[1][2]*X[2][0] + X[1][3]*X[2][2]*X[0][0] + X[2][3]*X[0][2]*X[1][0]))/Dx*(-1);
x[2] = ((X[0][0]*X[1][1]*X[2][3] + X[1][0]*X[2][1]*X[0][3] + X[2][0]*X[0][1]*X[1][3]) - (X[0][3]*X[1][1]*X[2][0] + X[1][3]*X[2][1]*X[0][0] + X[2][3]*X[0][1]*X[1][0]))/Dx;
cout << "As solucoes para x1, x2 e x3 sao: \n" ;
cout << x[0] << "\n";
cout << x[1] << "\n";
cout << x[2] << "\n";
}
}
if (esc == 2) {
cout << "Informe os coeficientes e os termos independentes das equacoes do sistema: \n";
for(i = 0; i<2; i++) {
for(j = 0; j<3; j++) {
cout << "Informe o valor de x" << i+1 << j+1 << ": ";
cin >> X[j];
}
}
Dx = (X[0][0]*X[1][1] - X[0][1]*X[1][0]);
x[0] = (X[0][1]*X[1][2] -(X[0][2]*X[1][1]))/Dx *(-1);
x[1] = (X[0][0]*X[1][2] -(X[0][2]*X[1][0]))/Dx;
cout << "As solucoes para x1, x2 sao: \n";
cout << x[0] << "\n";
cout << x[1] << "\n";
}
system ("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.