Bonjour à tous!
Je fais un programme en C++ ou je dois determiner les valeurs d'un polynome pour des entiers allant de 0 à 480.
Le polynome est le suivant:
y = 0,000000000322x5 - 0,000000257756x4 + 0,000081114881x3 - 0,008665354105x2 + 1,177898003058x - 2,112511004321

Il est un peu compliqué, mais il faut ce qu'il faut pour etre le plus précis possible

Je programme le tout dans une nouvelle classe:

class CRoom
{
private:
double a5, a4, a3, a2, a1, a0;
public:
CRoom(void);
~CRoom(void);

int power(int value, int n);
double fonction(int x);
};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
CRoom::CRoom(void)
{
	a5 = 3.22e-10 ;
	a4 = 2.57756e-7;
	a3 = 8.1114881e-5;
	a2 = 8.665354105e-3;
	a1 = 1,177898003058 ;
	a0 = 2,112511004321 ;
}
 
CRoom::~CRoom(void)
{
}
 
int CRoom::power(int value, int n)
{
	int result=1;
	for (int i=1;i<=n;i++)
	{
		result=value*result;
	}
	return result;
}
 
double CRoom::fonction(int x)
{
	double y;
	if (x>=4)
	{
		y = a5*power(x,5) - a4*power(x,4) + a3*power(x,3) - a2*power(x,2) + a1*x - a0 ;
	}
	else y = 0;
	return y;
}
Mais voila, au moment de lire les resultats donnés par la fonction, ben je tombe de haut: les données ne sont pas celles attendues.
D'ou pourrait venir l'erreur? De la définition de mes a(i) dans mon constructeur?
Merci d'avance pour votre aide