#include <iostream>
#include <cmath>
using namespace std;
// Definicja funkcji
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 PROSTOKĄTÓW (środków przedziałów) ---------
for (int i = 0; i < n; i++) {
double x = a + (i + 0.5) * h; // środek przedziału
suma_prostokaty += f(x);
}
double pi_prostokaty = 2.0 * suma_prostokaty * h;
// --------- METODA TRAPEZÓW ---------
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 pi_trapezy = 2.0 * suma_trapezy * h;
cout << "\nPrzyblizona wartosc pi:" << endl;
cout << "Metoda prostokatow: " << pi_prostokaty << endl;
cout << "Metoda trapezow: " << pi_trapezy << endl;
cout << "\nDokladna wartosc (z biblioteki): " << M_PI << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiBzcXJ0KDEuMCAtIHggKiB4KTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbjsKICAgIGNvdXQgPDwgIlBvZGFqIGxpY3piZSBwb2RwcnplZHppYWxvdzogIjsKICAgIGNpbiA+PiBuOwoKICAgIGRvdWJsZSBhID0gLTEuMDsKICAgIGRvdWJsZSBiID0gMS4wOwogICAgZG91YmxlIGggPSAoYiAtIGEpIC8gbjsKCiAgICBkb3VibGUgc3VtYV9wcm9zdG9rYXR5ID0gMC4wOwogICAgZG91YmxlIHN1bWFfdHJhcGV6eSA9IDAuMDsKCiAgICAvLyAtLS0tLS0tLS0gTUVUT0RBIFBST1NUT0vEhFTDk1cgKMWbcm9ka8OzdyBwcnplZHppYcWCw7N3KSAtLS0tLS0tLS0KICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZG91YmxlIHggPSBhICsgKGkgKyAwLjUpICogaDsgLy8gxZtyb2RlayBwcnplZHppYcWCdQogICAgICAgIHN1bWFfcHJvc3Rva2F0eSArPSBmKHgpOwogICAgfQogICAgZG91YmxlIHBpX3Byb3N0b2thdHkgPSAyLjAgKiBzdW1hX3Byb3N0b2thdHkgKiBoOwoKICAgIC8vIC0tLS0tLS0tLSBNRVRPREEgVFJBUEVaw5NXIC0tLS0tLS0tLQogICAgc3VtYV90cmFwZXp5ID0gKGYoYSkgKyBmKGIpKSAvIDIuMDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZG91YmxlIHggPSBhICsgaSAqIGg7CiAgICAgICAgc3VtYV90cmFwZXp5ICs9IGYoeCk7CiAgICB9CiAgICBkb3VibGUgcGlfdHJhcGV6eSA9IDIuMCAqIHN1bWFfdHJhcGV6eSAqIGg7CgogICAgY291dCA8PCAiXG5Qcnp5Ymxpem9uYSB3YXJ0b3NjIHBpOiIgPDwgZW5kbDsKICAgIGNvdXQgPDwgIk1ldG9kYSBwcm9zdG9rYXRvdzogIiA8PCBwaV9wcm9zdG9rYXR5IDw8IGVuZGw7CiAgICBjb3V0IDw8ICJNZXRvZGEgdHJhcGV6b3c6ICAgICIgPDwgcGlfdHJhcGV6eSA8PCBlbmRsOwoKICAgIGNvdXQgPDwgIlxuRG9rbGFkbmEgd2FydG9zYyAoeiBiaWJsaW90ZWtpKTogIiA8PCBNX1BJIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=