// mrys038.cpp
#include <iostream>
#include <cmath>
using namespace std;
// Definicja funkcji f(x)
double f(double x)
{
// Przykładowa funkcja: f(x) = x^2 - 2
return x * x - 2;
}
int main()
{
double a, b, eps, c;
cout << "Podaj poczatek przedzialu a: ";
cin >> a;
cout << "Podaj koniec przedzialu b: ";
cin >> b;
cout << "Podaj dokladnosc eps: ";
cin >> eps;
if (f(a) * f(b) >= 0)
{
cout << "Funkcja nie zmienia znaku w podanym przedziale." << endl;
return 1;
}
while ((b - a) / 2.0 > eps)
{
c = (a + b) / 2.0;
if (f(c) == 0.0)
break;
else if (f(a) * f(c) < 0)
b = c;
else
a = c;
}
c = (a + b) / 2.0;
cout << "Przyblizone miejsce zerowe: " << c << endl;
return 0;
}
Ly8gbXJ5czAzOC5jcHAKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkgZih4KQpkb3VibGUgZihkb3VibGUgeCkKewogICAgLy8gUHJ6eWvFgmFkb3dhIGZ1bmtjamE6IGYoeCkgPSB4XjIgLSAyCiAgICByZXR1cm4geCAqIHggLSAyOwp9CgppbnQgbWFpbigpCnsKICAgIGRvdWJsZSBhLCBiLCBlcHMsIGM7CgogICAgY291dCA8PCAiUG9kYWogcG9jemF0ZWsgcHJ6ZWR6aWFsdSBhOiAiOwogICAgY2luID4+IGE7CiAgICBjb3V0IDw8ICJQb2RhaiBrb25pZWMgcHJ6ZWR6aWFsdSBiOiAiOwogICAgY2luID4+IGI7CiAgICBjb3V0IDw8ICJQb2RhaiBkb2tsYWRub3NjIGVwczogIjsKICAgIGNpbiA+PiBlcHM7CgogICAgaWYgKGYoYSkgKiBmKGIpID49IDApCiAgICB7CiAgICAgICAgY291dCA8PCAiRnVua2NqYSBuaWUgem1pZW5pYSB6bmFrdSB3IHBvZGFueW0gcHJ6ZWR6aWFsZS4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgd2hpbGUgKChiIC0gYSkgLyAyLjAgPiBlcHMpCiAgICB7CiAgICAgICAgYyA9IChhICsgYikgLyAyLjA7CgogICAgICAgIGlmIChmKGMpID09IDAuMCkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZWxzZSBpZiAoZihhKSAqIGYoYykgPCAwKQogICAgICAgICAgICBiID0gYzsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBjOwogICAgfQoKICAgIGMgPSAoYSArIGIpIC8gMi4wOwogICAgY291dCA8PCAiUHJ6eWJsaXpvbmUgbWllanNjZSB6ZXJvd2U6ICIgPDwgYyA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==