#include <iostream>
#include <cmath>
using namespace std;
// Definicja funkcji
double f(double x)
{
return x * x * x - x - 2; // przykładowa funkcja: f(x) = x^3 - x - 2
}
int main()
{
double a, b, c;
double eps = 0.000001; // dokładność
cout << "Podaj poczatek przedzialu a: ";
cin >> a;
cout << "Podaj koniec przedzialu b: ";
cin >> b;
if (f(a) * f(b) >= 0)
{
cout << "Funkcja nie spelnia warunku metody bisekcji!" << endl;
return 1;
}
do
{
c = (a + b) / 2;
if (f(c) == 0.0)
break;
else if (f(a) * f(c) < 0)
b = c;
else
a = c;
} while (fabs(b - a) >= eps);
cout << "Miejsce zerowe: " << c << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpCnsKICAgIHJldHVybiB4ICogeCAqIHggLSB4IC0gMjsgICAvLyBwcnp5a8WCYWRvd2EgZnVua2NqYTogZih4KSA9IHheMyAtIHggLSAyCn0KCmludCBtYWluKCkKewogICAgZG91YmxlIGEsIGIsIGM7CiAgICBkb3VibGUgZXBzID0gMC4wMDAwMDE7ICAvLyBkb2vFgmFkbm/Fm8SHCgogICAgY291dCA8PCAiUG9kYWogcG9jemF0ZWsgcHJ6ZWR6aWFsdSBhOiAiOwogICAgY2luID4+IGE7CiAgICBjb3V0IDw8ICJQb2RhaiBrb25pZWMgcHJ6ZWR6aWFsdSBiOiAiOwogICAgY2luID4+IGI7CgogICAgaWYgKGYoYSkgKiBmKGIpID49IDApCiAgICB7CiAgICAgICAgY291dCA8PCAiRnVua2NqYSBuaWUgc3BlbG5pYSB3YXJ1bmt1IG1ldG9keSBiaXNla2NqaSEiIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgZG8KICAgIHsKICAgICAgICBjID0gKGEgKyBiKSAvIDI7CgogICAgICAgIGlmIChmKGMpID09IDAuMCkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZWxzZSBpZiAoZihhKSAqIGYoYykgPCAwKQogICAgICAgICAgICBiID0gYzsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBjOwoKICAgIH0gd2hpbGUgKGZhYnMoYiAtIGEpID49IGVwcyk7CgogICAgY291dCA8PCAiTWllanNjZSB6ZXJvd2U6ICIgPDwgYyA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==