Advertisement
mikolajmki

aan_lab7

Nov 22nd, 2021
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. void wykonajAlgorytm(int m, short c)
  8. {
  9.     float wynik = 0;
  10.     float f;
  11.     float h;
  12.  
  13.     if (c == 1 || c == 3)
  14.     {
  15.         //wynik += f[0] / 2 + f[m] / 2;
  16.         for (int i = 0 ; i <= m ; i ++)
  17.         {
  18.             if (c == 1)
  19.             {
  20.                 h = M_PI * 2 / (float)m;
  21.                 f = pow(sin(i * h), 2) + 2;
  22.             }
  23.             if (c == 3)
  24.             {
  25.                 h = 2 / (float)m;
  26.                 f = pow(2.7, i * h) * 2 * pow(i * h, 3);
  27.             }
  28.             if (i == 0 || i == m) wynik += 0.5 * f;
  29.             else wynik += f;
  30.         }
  31.         wynik *= h;
  32.     }
  33.     if (c == 2 || c == 4)
  34.     {
  35.         if (m % 2) cout << "Liczba m nie jest parzysta." << endl << endl;
  36.         else
  37.         {
  38.             for (int i = 0 ; i <= m ; i ++)
  39.             {
  40.                 if (c == 2)
  41.                 {
  42.                     h = M_PI * 2 / (float)m;
  43.                     f = pow(sin(i * h), 2) + 2;
  44.                 }
  45.                 if (c == 4)
  46.                 {
  47.                     h = 2 / (float)m;
  48.                     f = pow(2.7, i * h) * 2 * pow(i * h, 3);
  49.                 }
  50.                 if (i % 2 && i != 0) wynik += 4 * f;
  51.                 else if (i == 0 || i == m) wynik += f;
  52.                 else wynik += 2 * f;
  53.             }
  54.             wynik *= h / 3;
  55.         }
  56.     }
  57.     if (wynik) cout << "Wartosc calki jest rowna " << wynik;
  58. }
  59.  
  60.  
  61. int main()
  62. {
  63.     short c = 1;
  64.     int m;
  65.     float *f;
  66.  
  67.     while(c)
  68.     {
  69.         cout << endl << endl << "Wybierz opcje: " << endl
  70.              << "1 - Wzor zlozony trapezow dla calka od 0 do 2pi dla sin^2x + 2" << endl
  71.              << "2 - Wzor zlozony Simpsona dla calka od 0 do 2pi dla sin^2x + 2" << endl
  72.              << "3 - Wzor zlozony trapezow dla calka od 0 do 2 dla e^2 + 2x^3" << endl
  73.              << "4 - Wzor zlozony Simpsona dla calka od 0 do 2 dla e^2 + 2x^3" << endl;
  74.         cin >> c;
  75.  
  76.         if (c == 5) break;
  77.  
  78.         cout << "Podaj ilosc przedzialow: ";
  79.         cin >> m;
  80.  
  81.         f = new float[m];
  82.  
  83.         wykonajAlgorytm(m, c);
  84.  
  85.         delete[] f;
  86.     }
  87.     return 0;
  88. }
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement