Imprimir Soluções ou Casos Especiais
Neste passo final, você aprimorará o programa para fornecer uma saída mais detalhada para diferentes tipos de soluções em um sistema de duas equações lineares.
Abra o arquivo existente e faça as modificações finais:
cd ~/project
nano linear_equations.c
Atualize o código com formatação de saída aprimorada:
#include <stdio.h>
#include <math.h>
// Função para calcular o determinante
float determinant(float a1, float b1, float a2, float b2) {
return a1 * b2 - a2 * b1;
}
int main() {
float a1, b1, c1; // Coeficientes para a primeira equação
float a2, b2, c2; // Coeficientes para a segunda equação
float det, detX, detY;
float x, y;
float EPSILON = 1e-6; // Pequeno valor para comparação de ponto flutuante
// Solicitar e ler os coeficientes para a primeira equação
printf("Solucionador de Equações Lineares\n");
printf("Digite os coeficientes para a primeira equação (ax + by = c):\n");
printf("a1: ");
scanf("%f", &a1);
printf("b1: ");
scanf("%f", &b1);
printf("c1: ");
scanf("%f", &c1);
// Solicitar e ler os coeficientes para a segunda equação
printf("Digite os coeficientes para a segunda equação (ax + by = c):\n");
printf("a2: ");
scanf("%f", &a2);
printf("b2: ");
scanf("%f", &b2);
printf("c2: ");
scanf("%f", &c2);
// Imprimir as equações de entrada
printf("\nEquações de Entrada:\n");
printf("Equação 1: %.2fx + %.2fy = %.2f\n", a1, b1, c1);
printf("Equação 2: %.2fx + %.2fy = %.2f\n", a2, b2, c2);
// Calcular o determinante principal
det = determinant(a1, b1, a2, b2);
// Determinar e imprimir o tipo de solução
if (fabs(det) > EPSILON) {
// Caso de solução única
detX = determinant(c1, b1, c2, b2);
detY = determinant(a1, c1, a2, c2);
x = detX / det;
y = detY / det;
printf("\n--- Tipo de Solução: Solução Única ---\n");
printf("Solução:\n");
printf("x = %.2f\n", x);
printf("y = %.2f\n", y);
} else {
// Verificar se não há solução ou infinitas soluções
detX = determinant(c1, b1, c2, b2);
detY = determinant(a1, c1, a2, c2);
if (fabs(detX) > EPSILON || fabs(detY) > EPSILON) {
printf("\n--- Tipo de Solução: Sem Solução ---\n");
printf("O sistema de equações não possui solução.\n");
printf("As equações são inconsistentes e paralelas.\n");
} else {
printf("\n--- Tipo de Solução: Infinitas Soluções ---\n");
printf("O sistema de equações possui infinitas soluções.\n");
printf("As equações são equivalentes e dependentes.\n");
}
}
return 0;
}
Compile e execute o programa:
gcc linear_equations.c -o linear_equations
./linear_equations
Exemplo de saída para solução única:
Solucionador de Equações Lineares
Digite os coeficientes para a primeira equação (ax + by = c):
a1: 2
b1: 3
c1: 8
Digite os coeficientes para a segunda equação (ax + by = c):
a2: 1
b2: 4
c2: 10
Equações de Entrada:
Equação 1: 2.00x + 3.00y = 8.00
Equação 2: 1.00x + 4.00y = 10.00
--- Tipo de Solução: Solução Única ---
Solução:
x = 2.00
y = 2.00
Exemplo de saída para nenhuma solução:
Solucionador de Equações Lineares
Digite os coeficientes para a primeira equação (ax + by = c):
a1: 2
b1: 3
c1: 8
Digite os coeficientes para a segunda equação (ax + by = c):
a2: 4
b2: 6
c2: 16
Equações de Entrada:
Equação 1: 2.00x + 3.00y = 8.00
Equação 2: 4.00x + 6.00y = 16.00
--- Tipo de Solução: Sem Solução ---
O sistema de equações não possui solução.
As equações são inconsistentes e paralelas.