/* * * Lê os coeficientes e imprime um polinômio de grau * * máximo igual a 25. * * * * Re-estruture este programa utilizando funções. * * * */ #include <stdio.h> void le_polinomio(float *coef, int *grau) { int i; printf("Grau do polinômio (grau máximo = 25): "); scanf("%d", grau); if (*grau < 0 || *grau > 25) { printf("Grau inválido\n"); } for (i = *grau; i >= 0; i--) { printf("coeficiente de x^%d: ", i); scanf("%f", &coef[i]); } } void calcula_derivada(float *coef, int *grau) { int i; for (i = 1; i <= *grau; i++) { coef[i-1] = coef[i]* i; } *grau=*grau-1; } imprime_polinomio(float*coef, int *grau) { int i; printf("%.1fx^%d", coef[*grau], *grau); for (i = *grau - 1; i >= 0; i--) { if (coef[i] != 0) { if (coef[i] >= 0) { printf(" + %.1fx^%d", coef[i], i); } else { printf(" - %.1fx^%d", -coef[i], i); } } } printf("\n"); } int main() { float coef[26]; int grau, i; le_polinomio(coef, &grau); imprime_polinomio(coef,&grau); while(grau > 0) { calcula_derivada(coef, &grau); imprime_polinomio(coef, &grau); } return 0; }