#include <iostream>
#include <cmath>
using namespace std;
// Definicja funkcji
double f(double x) {
return x*x*x - x - 2;
}
int main() {
double a, b, eps, c;
cout << "Podaj a: ";
cin >> a;
cout << "Podaj b: ";
cin >> b;
cout << "Podaj dokladnosc eps: ";
cin >> eps;
// Sprawdzenie warunku początkowego
if (f(a) * f(b) >= 0) {
cout << "Brak zmiany znaku w przedziale!" << endl;
return 0;
}
// Algorytm bisekcji
while ((b - a) / 2 > eps) {
c = (a + b) / 2;
if (f(c) == 0.0)
break;
else if (f(a) * f(c) < 0)
b = c;
else
a = c;
}
c = (a + b) / 2;
cout << "Przyblizone miejsce zerowe: " << c << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiB4KngqeCAtIHggLSAyOwp9CgppbnQgbWFpbigpIHsKICAgIGRvdWJsZSBhLCBiLCBlcHMsIGM7CgogICAgY291dCA8PCAiUG9kYWogYTogIjsKICAgIGNpbiA+PiBhOwogICAgY291dCA8PCAiUG9kYWogYjogIjsKICAgIGNpbiA+PiBiOwogICAgY291dCA8PCAiUG9kYWogZG9rbGFkbm9zYyBlcHM6ICI7CiAgICBjaW4gPj4gZXBzOwoKICAgIC8vIFNwcmF3ZHplbmllIHdhcnVua3UgcG9jesSFdGtvd2VnbwogICAgaWYgKGYoYSkgKiBmKGIpID49IDApIHsKICAgICAgICBjb3V0IDw8ICJCcmFrIHptaWFueSB6bmFrdSB3IHByemVkemlhbGUhIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIC8vIEFsZ29yeXRtIGJpc2VrY2ppCiAgICB3aGlsZSAoKGIgLSBhKSAvIDIgPiBlcHMpIHsKICAgICAgICBjID0gKGEgKyBiKSAvIDI7CgogICAgICAgIGlmIChmKGMpID09IDAuMCkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZWxzZSBpZiAoZihhKSAqIGYoYykgPCAwKQogICAgICAgICAgICBiID0gYzsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBjOwogICAgfQoKICAgIGMgPSAoYSArIGIpIC8gMjsKICAgIGNvdXQgPDwgIlByenlibGl6b25lIG1pZWpzY2UgemVyb3dlOiAiIDw8IGMgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=