Advertisement
Siwy_Krzysiek

Całka

Nov 7th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.88 KB | None | 0 0
  1. #include <math.h>
  2. #include <stdio.h>
  3.  
  4. float fn(float x, float a, float b) {
  5.     float y = 0.0;
  6.     y = a*cos(b*x);
  7.     return y;
  8. }
  9.  
  10. float calka_function(int n, float z, float y, float a, float b) {
  11.  
  12.     float dx = (y - z) / (float)n;
  13.     float calka = 0.0;
  14.     int i = 0;
  15.     for (i = 1; i < n; i++) {
  16.         calka += fn(z + i*dx, a, b);
  17.     }
  18.     calka += (fn(y, a, b) + fn(z, a, b)) / 2;
  19.     calka *= dx;
  20.     return calka;
  21. }
  22.  
  23. void policzCalke(int liczbaProbek, double poczatek, double koniec, double a, double b) //y = a*cos(b*x)
  24. {
  25.     double calka = 0.0;
  26.     double wysokosc = (double)(koniec - poczatek) / (double)liczbaProbek;
  27.     int dwadziescaPr = liczbaProbek * 0.2;
  28.  
  29.     int i;
  30.     double sumaPodstaw;
  31.     for (i = 1; i <= liczbaProbek; i++)
  32.     {
  33.         sumaPodstaw = fn(poczatek + wysokosc*(i - 1), a, b) + fn(poczatek + wysokosc*i, a, b);
  34.         calka += 0.5 * wysokosc * sumaPodstaw;
  35.  
  36.         if (i % dwadziescaPr == 0)
  37.         {
  38.             printf("%d%% - calka = %lf\n", i/dwadziescaPr*20, calka);
  39.         }
  40.     }
  41. }
  42.  
  43. int main()
  44. {
  45.     float z, y, calka, a, b;
  46.     int i, n;
  47.     while (1) {
  48.         printf("Podaj poczatek calki z= ");
  49.         if (scanf("%f", &z) != 1)
  50.         {
  51.             printf("Blad danych , wprowadz liczbe\n");
  52.             return 1;
  53.         }
  54.         printf("Podaj koniec calki y= ");
  55.         if (scanf("%f", &y) != 1)
  56.         {
  57.             printf("Blad danych , wprowadz liczbe\n");
  58.             return 1;
  59.         }
  60.  
  61.         printf("Podaj parametr cosinusa a= ");
  62.         if (scanf("%f", &a) != 1)
  63.         {
  64.             printf("Blad danych , wprowadz liczbe\n");
  65.             return 1;
  66.         }
  67.         printf("Podaj parametr b= ");
  68.         if (scanf("%f", &b) != 1)
  69.         {
  70.             printf("Blad danych , wprowadz liczbe\n");
  71.             return 1;
  72.         }
  73.         printf("Podaj dokladnosc calkowania n= ");
  74.         if (scanf("%d", &n) != 1)
  75.         {
  76.             printf("Blad danych , wprowadz liczbe\n");
  77.             return 1;
  78.         }
  79.         //calka = calka_function(n, z, y, a, b);
  80.         //printf("calka = %f\n", calka);
  81.         //printf("calka 20 procent = %f\n", calka*0.2);
  82.  
  83.         policzCalke(n, z, y, a, b);
  84.     }
  85.     return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement