#include #include #include #include float func(float x) { return 1/(1+x*x);; } void Calka(int a, int b, int liczba_prostokatow, int liczba_watkow) { int i; clock_t start , end; double cpu_time_used; start = clock(); float dx, calka, calkaTemp; dx = (b-a)/(float)liczba_prostokatow; calka = 0; omp_set_num_threads(liczba_watkow); #pragma omp parallel private(calkaTemp) { #pragma omp for for (i=1; i<=liczba_prostokatow; i++) { calkaTemp += func(a + i * dx); } #pragma omp critical calka += calkaTemp; } calka *= dx; end = clock(); cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; printf("Wynik: %f Czas: %fn", calka, cpu_time_used ) ; } int main() { int a ,b , n; printf("Podaj an") ; scanf("%d", &a); printf("Podaj bn") ; scanf("%d", &b); printf("Podaj liczbe prostokatown") ; scanf("%d", &n); Calka(a, b, n, 1); Calka(a, b, n, 2); Calka(a, b, n, 4); }