#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 = 0.0001; // dokładność
double c;
// Sprawdzenie warunku koniecznego
if (f(a) * f(b) >= 0) {
cout << "Brak miejsca zerowego w podanym przedziale." << 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 << "Przyblizone miejsce zerowe: x = " << (a + b) / 2.0 << endl;
// Zapis danych do pliku (do wykresu)
ofstream dane("funkcja.dat");
for (double x = 1.5; x <= 4.5; x += 0.05) {
dane << x << " " << f(x) << endl;
}
dane.close();
cout << "Dane do wykresu zapisane w pliku funkcja.dat" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGNtYXRoPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIERlZmluaWNqYSBmdW5rY2ppCmRvdWJsZSBmKGRvdWJsZSB4KSB7CiAgICByZXR1cm4gMC4yNSAqIHggKiB4IC0gMi4wOwp9CgppbnQgbWFpbigpIHsKICAgIGRvdWJsZSBhID0gMi4wOwogICAgZG91YmxlIGIgPSA0LjA7CiAgICBkb3VibGUgZXBzID0gMC4wMDAxOyAvLyBkb2vFgmFkbm/Fm8SHCiAgICBkb3VibGUgYzsKCiAgICAvLyBTcHJhd2R6ZW5pZSB3YXJ1bmt1IGtvbmllY3puZWdvCiAgICBpZiAoZihhKSAqIGYoYikgPj0gMCkgewogICAgICAgIGNvdXQgPDwgIkJyYWsgbWllanNjYSB6ZXJvd2VnbyB3IHBvZGFueW0gcHJ6ZWR6aWFsZS4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgLy8gTWV0b2RhIGJpc2VrY2ppCiAgICB3aGlsZSAoKGIgLSBhKSAvIDIuMCA+IGVwcykgewogICAgICAgIGMgPSAoYSArIGIpIC8gMi4wOwoKICAgICAgICBpZiAoZihjKSA9PSAwLjApCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGVsc2UgaWYgKGYoYSkgKiBmKGMpIDwgMCkKICAgICAgICAgICAgYiA9IGM7CiAgICAgICAgZWxzZQogICAgICAgICAgICBhID0gYzsKICAgIH0KCiAgICBjb3V0IDw8ICJQcnp5Ymxpem9uZSBtaWVqc2NlIHplcm93ZTogeCA9ICIgPDwgKGEgKyBiKSAvIDIuMCA8PCBlbmRsOwoKICAgIC8vIFphcGlzIGRhbnljaCBkbyBwbGlrdSAoZG8gd3lrcmVzdSkKICAgIG9mc3RyZWFtIGRhbmUoImZ1bmtjamEuZGF0Iik7CiAgICBmb3IgKGRvdWJsZSB4ID0gMS41OyB4IDw9IDQuNTsgeCArPSAwLjA1KSB7CiAgICAgICAgZGFuZSA8PCB4IDw8ICIgIiA8PCBmKHgpIDw8IGVuZGw7CiAgICB9CiAgICBkYW5lLmNsb3NlKCk7CgogICAgY291dCA8PCAiRGFuZSBkbyB3eWtyZXN1IHphcGlzYW5lIHcgcGxpa3UgZnVua2NqYS5kYXQiIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=