Imprimir el resultado
En este último paso, mejorará el programa de evaluación de polinomios agregando una salida formateada y un manejo de errores para mejorar la experiencia del usuario.
Abra el archivo C anterior y actualícelo con una impresión de resultado mejorada:
cd ~/proyecto
nano polynomial_eval.c
Actualice el código con una impresión de resultado formateada y una validación de entrada:
#include <stdio.h>
#define MAX_GRADO 10
double hornerMethod(int grado, double coeficientes[], double x) {
double resultado = coeficientes[grado];
for (int i = grado - 1; i >= 0; i--) {
resultado = resultado * x + coeficientes[i];
}
return resultado;
}
void printPolynomial(int grado, double coeficientes[]) {
printf("Polinomio: ");
for (int i = grado; i >= 0; i--) {
if (coeficientes[i]!= 0) {
if (i == grado) {
printf("%.2fx^%d ", coeficientes[i], i);
} else if (i > 1) {
printf("%+.2fx^%d ", coeficientes[i], i);
} else if (i == 1) {
printf("%+.2fx ", coeficientes[i]);
} else {
printf("%+.2f", coeficientes[i]);
}
}
}
printf("\n");
}
int main() {
int grado;
double coeficientes[MAX_GRADO + 1];
double x, resultado;
// Validación de entrada
do {
printf("Ingrese el grado del polinomio (0-10): ");
scanf("%d", &grado);
} while (grado < 0 || grado > MAX_GRADO);
printf("Ingrese los coeficientes desde el grado más alto hasta el término constante:\n");
for (int i = grado; i >= 0; i--) {
printf("Coeficiente para x^%d: ", i);
scanf("%lf", &coeficientes[i]);
}
printf("Ingrese el valor de x: ");
scanf("%lf", &x);
// Imprimir detalles del polinomio
printPolynomial(grado, coeficientes);
// Evaluar el polinomio utilizando el método de Horner
resultado = hornerMethod(grado, coeficientes, x);
// Salida de resultado formateada
printf("Evaluación del polinomio:\n");
printf("P(x) = f(%.2f) = %.2f\n", x, resultado);
return 0;
}
Compile y ejecute el programa actualizado:
gcc polynomial_eval.c -o polynomial_eval
./polynomial_eval
Salida de ejemplo:
Ingrese el grado del polinomio (0-10): 3
Ingrese los coeficientes desde el grado más alto hasta el término constante:
Coeficiente para x^3: 2
Coeficiente para x^2: -3
Coeficiente para x^1: 0
Coeficiente para x^0: 5
Ingrese el valor de x: 2
Polinomio: 2.00x^3 -3.00x^2 +5.00
Evaluación del polinomio:
P(x) = f(2.00) = 11.00
Mejoras principales:
- Se agregó la función
printPolynomial()
para mostrar el polinomio
- Se implementó una validación de entrada para el grado del polinomio
- Se mejoró la impresión del resultado con una salida formateada
- Se muestra tanto el polinomio como su valor evaluado