#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdlib>
using namespace std;
// Definicja funkcji
double f(double x) {
return 0.25 * x * x - 2.0;
}
int main() {
double a = 2.0;
double b = 4.0;
double eps = 1e-6;
double c;
// Sprawdzenie warunku bisekcji
if (f(a) * f(b) >= 0) {
cout << "Warunek f(a)*f(b) < 0 nie jest spełniony!" << endl;
return 1;
}
// Metoda 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;
}
cout << "Miejsce zerowe: x = " << c << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3N0ZGxpYj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBEZWZpbmljamEgZnVua2NqaQpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIDAuMjUgKiB4ICogeCAtIDIuMDsKfQoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgYSA9IDIuMDsKICAgIGRvdWJsZSBiID0gNC4wOwogICAgZG91YmxlIGVwcyA9IDFlLTY7CiAgICBkb3VibGUgYzsKCiAgICAvLyBTcHJhd2R6ZW5pZSB3YXJ1bmt1IGJpc2VrY2ppCiAgICBpZiAoZihhKSAqIGYoYikgPj0gMCkgewogICAgICAgIGNvdXQgPDwgIldhcnVuZWsgZihhKSpmKGIpIDwgMCBuaWUgamVzdCBzcGXFgm5pb255ISIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAvLyBNZXRvZGEgYmlzZWtjamkKICAgIHdoaWxlICgoYiAtIGEpIC8gMi4wID4gZXBzKSB7CiAgICAgICAgYyA9IChhICsgYikgLyAyLjA7CgogICAgICAgIGlmIChmKGMpID09IDAuMCkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZWxzZSBpZiAoZihhKSAqIGYoYykgPCAwKQogICAgICAgICAgICBiID0gYzsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBjOwogICAgfQoKICAgIGNvdXQgPDwgIk1pZWpzY2UgemVyb3dlOiB4ID0gIiA8PCBjIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K