#include <iostream>
#include <cmath>
using namespace std;
double trapezy(double a, double b, int n)
{
double h = (b - a) / n;
double suma = 0.0;
// suma wartości wewnętrznych
for (int i = 1; i < n; i++)
{
double x = a + i * h;
suma += sin(x);
}
// wzór metody trapezów
suma = (sin(a) + sin(b)) / 2 + suma;
return suma * h;
}
int main()
{
double a1 = 0.0, b1 = 3.14;
double a2 = 0.0, b2 = 3.14;
int n1 = 10, n2 = 100;
double s1 = trapezy(a1, b1, n1);
double s2 = trapezy(a2, b2, n2);
cout << "s1 (n = 10) = " << s1 << endl;
cout << "s2 (n = 100) = " << s2 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZG91YmxlIHRyYXBlenkoZG91YmxlIGEsIGRvdWJsZSBiLCBpbnQgbikKewogICAgZG91YmxlIGggPSAoYiAtIGEpIC8gbjsKICAgIGRvdWJsZSBzdW1hID0gMC4wOwoKICAgIC8vIHN1bWEgd2FydG/Fm2NpIHdld27EmXRyem55Y2gKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGRvdWJsZSB4ID0gYSArIGkgKiBoOwogICAgICAgIHN1bWEgKz0gc2luKHgpOwogICAgfQoKICAgIC8vIHd6w7NyIG1ldG9keSB0cmFwZXrDs3cKICAgIHN1bWEgPSAoc2luKGEpICsgc2luKGIpKSAvIDIgKyBzdW1hOwogICAgcmV0dXJuIHN1bWEgKiBoOwp9CgppbnQgbWFpbigpCnsKICAgIGRvdWJsZSBhMSA9IDAuMCwgYjEgPSAzLjE0OwogICAgZG91YmxlIGEyID0gMC4wLCBiMiA9IDMuMTQ7CiAgICBpbnQgbjEgPSAxMCwgbjIgPSAxMDA7CgogICAgZG91YmxlIHMxID0gdHJhcGV6eShhMSwgYjEsIG4xKTsKICAgIGRvdWJsZSBzMiA9IHRyYXBlenkoYTIsIGIyLCBuMik7CgogICAgY291dCA8PCAiczEgKG4gPSAxMCkgID0gIiA8PCBzMSA8PCBlbmRsOwogICAgY291dCA8PCAiczIgKG4gPSAxMDApID0gIiA8PCBzMiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==