Imprimir o Resultado
Neste passo final, irá melhorar o programa de avaliação polinomial adicionando saída formatada e tratamento de erros para melhorar a experiência do utilizador.
Abra o ficheiro C anterior e atualize-o com a impressão de resultados melhorada:
cd ~/project
nano polynomial_eval.c
Atualize o código com a impressão de resultados formatada e validação de entrada:
#include <stdio.h>
#define MAX_DEGREE 10
double hornerMethod(int degree, double coefficients[], double x) {
double result = coefficients[degree];
for (int i = degree - 1; i >= 0; i--) {
result = result * x + coefficients[i];
}
return result;
}
void printPolynomial(int degree, double coefficients[]) {
printf("Polinómio: ");
for (int i = degree; i >= 0; i--) {
if (coefficients[i] != 0) {
if (i == degree) {
printf("%.2fx^%d ", coefficients[i], i);
} else if (i > 1) {
printf("%+.2fx^%d ", coefficients[i], i);
} else if (i == 1) {
printf("%+.2fx ", coefficients[i]);
} else {
printf("%+.2f", coefficients[i]);
}
}
}
printf("\n");
}
int main() {
int degree;
double coefficients[MAX_DEGREE + 1];
double x, result;
// Validação de entrada
do {
printf("Introduza o grau do polinómio (0-10): ");
scanf("%d", °ree);
} while (degree < 0 || degree > MAX_DEGREE);
printf("Introduza os coeficientes do grau mais alto até ao termo constante:\n");
for (int i = degree; i >= 0; i--) {
printf("Coeficiente para x^%d: ", i);
scanf("%lf", &coefficients[i]);
}
printf("Introduza o valor de x: ");
scanf("%lf", &x);
// Imprimir detalhes do polinómio
printPolynomial(degree, coefficients);
// Avaliar o polinómio usando o método de Horner
result = hornerMethod(degree, coefficients, x);
// Saída de resultado formatada
printf("Avaliação do Polinómio:\n");
printf("P(x) = f(%.2f) = %.2f\n", x, result);
return 0;
}
Compile e execute o programa atualizado:
gcc polynomial_eval.c -o polynomial_eval
./polynomial_eval
Exemplo de saída:
Introduza o grau do polinómio (0-10): 3
Introduza os coeficientes do grau mais alto até ao termo constante:
Coeficiente para x^3: 2
Coeficiente para x^2: -3
Coeficiente para x^1: 0
Coeficiente para x^0: 5
Introduza o valor de x: 2
Polinómio: 2.00x^3 -3.00x^2 +5.00
Avaliação do Polinómio:
P(x) = f(2.00) = 11.00
Melhorias chave:
- Adicionada a função
printPolynomial() para exibir o polinómio
- Implementada validação de entrada para o grau do polinómio
- Saída de resultado melhorada com saída formatada
- Mostra tanto o polinómio como o seu valor avaliado.