#include <iostream>
#include <cmath>
using namespace std;
// funkcja f(x) = sqrt(1 - x^2)
double f(double x) {
return sqrt(1.0 - x * x);
}
int main() {
int n;
cout << "Podaj liczbe podprzedzialow: ";
cin >> n;
double a = -1.0;
double b = 1.0;
double h = (b - a) / n;
double suma_prostokaty = 0.0;
double suma_trapezy = 0.0;
// --- Metoda prostokatow (srodki przedzialow) ---
for (int i = 0; i < n; i++) {
double x = a + (i + 0.5) * h; // srodek przedzialu
suma_prostokaty += f(x);
}
double wynik_prostokaty = 2.0 * h * suma_prostokaty;
// --- Metoda trapezow ---
suma_trapezy = (f(a) + f(b)) / 2.0;
for (int i = 1; i < n; i++) {
double x = a + i * h;
suma_trapezy += f(x);
}
double wynik_trapezy = 2.0 * h * suma_trapezy;
cout << "Przyblizenie PI (metoda prostokatow): "
<< wynik_prostokaty << endl;
cout << "Przyblizenie PI (metoda trapezow): "
<< wynik_trapezy << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gZnVua2NqYSBmKHgpID0gc3FydCgxIC0geF4yKQpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIHNxcnQoMS4wIC0geCAqIHgpOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgY291dCA8PCAiUG9kYWogbGljemJlIHBvZHByemVkemlhbG93OiAiOwogICAgY2luID4+IG47CgogICAgZG91YmxlIGEgPSAtMS4wOwogICAgZG91YmxlIGIgPSAxLjA7CiAgICBkb3VibGUgaCA9IChiIC0gYSkgLyBuOwoKICAgIGRvdWJsZSBzdW1hX3Byb3N0b2thdHkgPSAwLjA7CiAgICBkb3VibGUgc3VtYV90cmFwZXp5ID0gMC4wOwoKICAgIC8vIC0tLSBNZXRvZGEgcHJvc3Rva2F0b3cgKHNyb2RraSBwcnplZHppYWxvdykgLS0tCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGRvdWJsZSB4ID0gYSArIChpICsgMC41KSAqIGg7IC8vIHNyb2RlayBwcnplZHppYWx1CiAgICAgICAgc3VtYV9wcm9zdG9rYXR5ICs9IGYoeCk7CiAgICB9CiAgICBkb3VibGUgd3luaWtfcHJvc3Rva2F0eSA9IDIuMCAqIGggKiBzdW1hX3Byb3N0b2thdHk7CgogICAgLy8gLS0tIE1ldG9kYSB0cmFwZXpvdyAtLS0KICAgIHN1bWFfdHJhcGV6eSA9IChmKGEpICsgZihiKSkgLyAyLjA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgewogICAgICAgIGRvdWJsZSB4ID0gYSArIGkgKiBoOwogICAgICAgIHN1bWFfdHJhcGV6eSArPSBmKHgpOwogICAgfQogICAgZG91YmxlIHd5bmlrX3RyYXBlenkgPSAyLjAgKiBoICogc3VtYV90cmFwZXp5OwoKICAgIGNvdXQgPDwgIlByenlibGl6ZW5pZSBQSSAobWV0b2RhIHByb3N0b2thdG93KTogIiAKICAgICAgICAgPDwgd3luaWtfcHJvc3Rva2F0eSA8PCBlbmRsOwoKICAgIGNvdXQgPDwgIlByenlibGl6ZW5pZSBQSSAobWV0b2RhIHRyYXBlem93KTogIiAKICAgICAgICAgPDwgd3luaWtfdHJhcGV6eSA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9