//                 __
// But : calcul de || par la methode des rectangles (point milieu).
//
// /1
// |     4           __
// | ---------- dx = ||
// | 1 + x**2
// 
#include <stdio.h>
#include <stdlib.h>
//#include <omp.h>
#include <sys/time.h>
#include <unistd.h> 

// pour windows
double get_time(){ return ((double) clock())/CLOCKS_PER_SEC;}

/*
//pour linux
double get_time() {  
       struct timeval tv;  
       gettimeofday(&tv, (void *)0);  
       return (double) tv.tv_sec + tv.tv_usec*1e-6;
}*/
/*
double calcul_pi_parallele(int nb_threads, int N){  
       double start,stop;  
       double cpu_time_used; 
       int i = 0;  
       double valeur_pi = 0.0;  
       double somme = 0.0;  
       double fX;  
       double h = (double)1.0 / (double)N;  
       start = get_time();  
         
       for(i = 0; i < N; i++) {    
             fX = h * (i - 0.5);    
             somme +=  4.0/(1.0 + fX*fX);  
             }  valeur_pi= h * somme;  
             stop = get_time();
             printf("Valeur de pi %1.12f\n",valeur_pi);    
             cpu_time_used = stop-start;  
             return cpu_time_used;
             }
 */            
int main(int argc, char **argv){     
    
  
/* resulat */
float integral ;
/* points gauche et droit */
float a, b ;
/* nombre de trapezes */
int n ;
/* hauteur d’un trapeze */
float h ; 
float x ; int i ;
printf ("Donner a, b, et n \n") 
scanf ("%f %f %d", &a, &b, &n) 
h = (b-a)/n ;
integral = (f(a) + f(b))/2 ;

for (i=1, x=a ; i<=n-1 ; i++) 
  x += h ;
integral += f(x) ;
}
integral *= h ;
printf ("Estimation : %f\n", integral) ;
}

	
	
	
	
	
	
    system("PAUSE"); 
    return(EXIT_SUCCESS);
}  
