#include <iostream>
#include <cmath>
using namespace std;
double f(double x)
{
return x*x - 4;
}
int main()
{
double a, b, srodek;
int iter = 0;
double eps = 0.000001;
cout << "Podaj a: ";
cin >> a;
cout << "Podaj b: ";
cin >> b;
if (f(a) * f(b) >= 0)
{
cout << "Brak miejsca zerowego w przedziale." << endl;
return 0;
}
while ((b - a) / 2 > eps)
{
srodek = (a + b) / 2;
iter++;
cout << "Iteracja " << iter
<< " x = " << srodek
<< " f(x) = " << f(srodek) << endl;
if (f(a) * f(srodek) < 0)
b = srodek;
else
a = srodek;
}
cout << "\nMiejsce zerowe: " << (a + b) / 2 << endl;
cout << "Liczba iteracji: " << iter << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZG91YmxlIGYoZG91YmxlIHgpCnsKICAgIHJldHVybiB4KnggLSA0Owp9CgppbnQgbWFpbigpCnsKICAgIGRvdWJsZSBhLCBiLCBzcm9kZWs7CiAgICBpbnQgaXRlciA9IDA7CiAgICBkb3VibGUgZXBzID0gMC4wMDAwMDE7CgogICAgY291dCA8PCAiUG9kYWogYTogIjsKICAgIGNpbiA+PiBhOwogICAgY291dCA8PCAiUG9kYWogYjogIjsKICAgIGNpbiA+PiBiOwoKICAgIGlmIChmKGEpICogZihiKSA+PSAwKQogICAgewogICAgICAgIGNvdXQgPDwgIkJyYWsgbWllanNjYSB6ZXJvd2VnbyB3IHByemVkemlhbGUuIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIHdoaWxlICgoYiAtIGEpIC8gMiA+IGVwcykKICAgIHsKICAgICAgICBzcm9kZWsgPSAoYSArIGIpIC8gMjsKICAgICAgICBpdGVyKys7CgogICAgICAgIGNvdXQgPDwgIkl0ZXJhY2phICIgPDwgaXRlcgogICAgICAgICAgICAgPDwgIiB4ID0gIiA8PCBzcm9kZWsKICAgICAgICAgICAgIDw8ICIgZih4KSA9ICIgPDwgZihzcm9kZWspIDw8IGVuZGw7CgogICAgICAgIGlmIChmKGEpICogZihzcm9kZWspIDwgMCkKICAgICAgICAgICAgYiA9IHNyb2RlazsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBzcm9kZWs7CiAgICB9CgogICAgY291dCA8PCAiXG5NaWVqc2NlIHplcm93ZTogIiA8PCAoYSArIGIpIC8gMiA8PCBlbmRsOwogICAgY291dCA8PCAiTGljemJhIGl0ZXJhY2ppOiAiIDw8IGl0ZXIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=