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
| #include <iostream>
#include <cmath>
using namespace std;
#define PI 3.14159
double Integration_Trapeze(double, float, float, int);
double Fonction(double);
double Fonction(double x)
{
return(x*x);
}
typedef double (*TypeFonction)(double);//pointeur de type fonction retournant un float et ayant un float comme parametre
double Integration_Trapeze(TypeFonction f, float a, float b, int n)
{
double I=0; /*valeur de l'intégrale*/
float h=(b-a)/n; /*pas d'intégration*/
for (int i=0; i<n; i=i+1)
{
double x=a+i*h;
double fa=(*f)(x);
x=x+h; double fb=(*f)(x);
I=I+0.5*(fa+fb)*h;
};
return(I);
}
int main(void)
{
double I=Integration_Trapeze(&Fonction, 0, 1, 20);
cout<<"integrale = "<<I<<"\n";
} |