Exercice langage C calcul d'un polynôme de degré N


Calculer pour une valeur X donnée du type float la valeur numérique d'un polynôme de degré n:

P(X) = AnXn + An-1Xn-1 + ... + A1X + A0

 

Les valeurs des coefficients An, ... , A0 seront entrées au clavier et mémorisées dans un tableau A de type float et de dimension n+1.

a) Utilisez la fonction pow() pour le calcul.

b) Utilisez le schéma de Horner qui évite les opérations d'exponentiation:



 prg-c26


 

Solution combinée:

 

#include <stdio.h>
#include <math.h>
main()
{
float A[20];/* tableau des coefficients de P */
int I; /* indice courant */
int N; /* degré du polynôme */
float X; /* argument */
float P; /* résultat */

/* Saisie du degré N et de l'argument X */
printf("Entrer le degré N du polynôme (max.20) : ");
scanf("%d", &N);
printf("Entrer la valeur X de l'argument : ");
scanf("%f", &X);
/* Saisie des coefficients */
for (I=0 ; I<N ; I++)
{
printf("Entrer le coefficient A%d : ", I);
scanf("%f", &A[I]);
}

/* a) Calcul à l'aide de pow
for (P=0.0, I=0 ; I<N ; I++)
P += A[I]*pow(X,I); */

/* b) Calcul de Horner */
for (P=0.0, I=0 ; I<N ; I++)
P = P*X + A[I];

/* Edition du résultat */
printf("Valeur du polynôme pour X = %.2f : %.2f\n", X, P);
return 0;
}