#include <iostream>
#include <cmath>
using namespace std;
// Definicja funkcji
double f(double x) {
return x * x * x - x - 2; // przykładowa funkcja: x^3 - 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;
// Sprawdzenie warunku metody bisekcji
if (f(a) * f(b) >= 0) {
cout << "Funkcja nie zmienia znaku w tym przedziale." << endl;
return 0;
}
// Algorytm bisekcji
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;
cout << "f(x) = " << f(c) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5pY2phIGZ1bmtjamkKZG91YmxlIGYoZG91YmxlIHgpIHsKICAgIHJldHVybiB4ICogeCAqIHggLSB4IC0gMjsgLy8gcHJ6eWvFgmFkb3dhIGZ1bmtjamE6IHheMyAtIHggLSAyCn0KCmludCBtYWluKCkgewogICAgZG91YmxlIGEsIGIsIGVwcywgYzsKCiAgICBjb3V0IDw8ICJQb2RhaiBwb2N6YXRlayBwcnplZHppYWx1IGE6ICI7CiAgICBjaW4gPj4gYTsKICAgIGNvdXQgPDwgIlBvZGFqIGtvbmllYyBwcnplZHppYWx1IGI6ICI7CiAgICBjaW4gPj4gYjsKICAgIGNvdXQgPDwgIlBvZGFqIGRva2xhZG5vc2MgZXBzOiAiOwogICAgY2luID4+IGVwczsKCiAgICAvLyBTcHJhd2R6ZW5pZSB3YXJ1bmt1IG1ldG9keSBiaXNla2NqaQogICAgaWYgKGYoYSkgKiBmKGIpID49IDApIHsKICAgICAgICBjb3V0IDw8ICJGdW5rY2phIG5pZSB6bWllbmlhIHpuYWt1IHcgdHltIHByemVkemlhbGUuIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIC8vIEFsZ29yeXRtIGJpc2VrY2ppCiAgICB3aGlsZSAoKGIgLSBhKSAvIDIuMCA+IGVwcykgewogICAgICAgIGMgPSAoYSArIGIpIC8gMi4wOwoKICAgICAgICBpZiAoZihjKSA9PSAwLjApCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGVsc2UgaWYgKGYoYSkgKiBmKGMpIDwgMCkKICAgICAgICAgICAgYiA9IGM7CiAgICAgICAgZWxzZQogICAgICAgICAgICBhID0gYzsKICAgIH0KCiAgICBjID0gKGEgKyBiKSAvIDIuMDsKCiAgICBjb3V0IDw8ICJQcnp5Ymxpem9uZSBtaWVqc2NlIHplcm93ZTogIiA8PCBjIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJmKHgpID0gIiA8PCBmKGMpIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K