Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- void wykonajAlgorytm(int m, short c)
- {
- float wynik = 0;
- float f;
- float h;
- if (c == 1 || c == 3)
- {
- //wynik += f[0] / 2 + f[m] / 2;
- for (int i = 0 ; i <= m ; i ++)
- {
- if (c == 1)
- {
- h = M_PI * 2 / (float)m;
- f = pow(sin(i * h), 2) + 2;
- }
- if (c == 3)
- {
- h = 2 / (float)m;
- f = pow(2.7, i * h) * 2 * pow(i * h, 3);
- }
- if (i == 0 || i == m) wynik += 0.5 * f;
- else wynik += f;
- }
- wynik *= h;
- }
- if (c == 2 || c == 4)
- {
- if (m % 2) cout << "Liczba m nie jest parzysta." << endl << endl;
- else
- {
- for (int i = 0 ; i <= m ; i ++)
- {
- if (c == 2)
- {
- h = M_PI * 2 / (float)m;
- f = pow(sin(i * h), 2) + 2;
- }
- if (c == 4)
- {
- h = 2 / (float)m;
- f = pow(2.7, i * h) * 2 * pow(i * h, 3);
- }
- if (i % 2 && i != 0) wynik += 4 * f;
- else if (i == 0 || i == m) wynik += f;
- else wynik += 2 * f;
- }
- wynik *= h / 3;
- }
- }
- if (wynik) cout << "Wartosc calki jest rowna " << wynik;
- }
- int main()
- {
- short c = 1;
- int m;
- float *f;
- while(c)
- {
- cout << endl << endl << "Wybierz opcje: " << endl
- << "1 - Wzor zlozony trapezow dla calka od 0 do 2pi dla sin^2x + 2" << endl
- << "2 - Wzor zlozony Simpsona dla calka od 0 do 2pi dla sin^2x + 2" << endl
- << "3 - Wzor zlozony trapezow dla calka od 0 do 2 dla e^2 + 2x^3" << endl
- << "4 - Wzor zlozony Simpsona dla calka od 0 do 2 dla e^2 + 2x^3" << endl;
- cin >> c;
- if (c == 5) break;
- cout << "Podaj ilosc przedzialow: ";
- cin >> m;
- f = new float[m];
- wykonajAlgorytm(m, c);
- delete[] f;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement