#include <iostream>
#include <fstream>
#include <cmath>
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; // dokładność
double c;
// Sprawdzenie warunku
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) > 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;
cout << "f(x) = " << f(c) << endl;
// Zapis danych do wykresu
ofstream file("wykres.dat");
for (double x = 1.5; x <= 4.5; x += 0.01)
{
file << x << " " << f(x) << endl;
}
file.close();
cout << "Dane do wykresu zapisane w pliku wykres.dat" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGNtYXRoPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIERlZmluaWNqYSBmdW5rY2ppCmRvdWJsZSBmKGRvdWJsZSB4KQp7CiAgICByZXR1cm4gMC4yNSAqIHggKiB4IC0gMi4wOwp9CgppbnQgbWFpbigpCnsKICAgIGRvdWJsZSBhID0gMi4wOwogICAgZG91YmxlIGIgPSA0LjA7CiAgICBkb3VibGUgZXBzID0gMWUtNjsgLy8gZG9rxYJhZG5vxZvEhwogICAgZG91YmxlIGM7CgogICAgLy8gU3ByYXdkemVuaWUgd2FydW5rdQogICAgaWYgKGYoYSkgKiBmKGIpID49IDApCiAgICB7CiAgICAgICAgY291dCA8PCAiV2FydW5layBmKGEpKmYoYikgPCAwIG5pZSBqZXN0IHNwZcWCbmlvbnkhIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIC8vIE1ldG9kYSBiaXNla2NqaQogICAgd2hpbGUgKChiIC0gYSkgPiBlcHMpCiAgICB7CiAgICAgICAgYyA9IChhICsgYikgLyAyLjA7CgogICAgICAgIGlmIChmKGMpID09IDAuMCkKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZWxzZSBpZiAoZihhKSAqIGYoYykgPCAwKQogICAgICAgICAgICBiID0gYzsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBjOwogICAgfQoKICAgIGNvdXQgPDwgIk1pZWpzY2UgemVyb3dlOiB4ID0gIiA8PCBjIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJmKHgpID0gIiA8PCBmKGMpIDw8IGVuZGw7CgogICAgLy8gWmFwaXMgZGFueWNoIGRvIHd5a3Jlc3UKICAgIG9mc3RyZWFtIGZpbGUoInd5a3Jlcy5kYXQiKTsKICAgIGZvciAoZG91YmxlIHggPSAxLjU7IHggPD0gNC41OyB4ICs9IDAuMDEpCiAgICB7CiAgICAgICAgZmlsZSA8PCB4IDw8ICIgIiA8PCBmKHgpIDw8IGVuZGw7CiAgICB9CiAgICBmaWxlLmNsb3NlKCk7CgogICAgY291dCA8PCAiRGFuZSBkbyB3eWtyZXN1IHphcGlzYW5lIHcgcGxpa3Ugd3lrcmVzLmRhdCIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=