fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. // Definicja funkcji
  7. double f(double x) {
  8. return x*x*x - x - 2;
  9. }
  10.  
  11. int main() {
  12. double a, b, c;
  13. double epsilon = 1e-6; // dokładność
  14.  
  15. cout << "Podaj przedzial [a, b]: ";
  16. cin >> a >> b;
  17.  
  18. if (f(a) * f(b) >= 0) {
  19. cout << "Funkcja nie zmienia znaku w tym przedziale." << endl;
  20. return 1;
  21. }
  22.  
  23. do {
  24. c = (a + b) / 2.0;
  25.  
  26. if (f(c) == 0.0)
  27. break;
  28. else if (f(a) * f(c) < 0)
  29. b = c;
  30. else
  31. a = c;
  32.  
  33. } while (fabs(b - a) > epsilon);
  34.  
  35. cout << "Przyblizone miejsce zerowe: " << c << endl;
  36.  
  37. return 0;
  38. }
  39.  
  40.  
Success #stdin #stdout 0s 5320KB
stdin
2, 4
stdout
Podaj przedzial [a, b]: Przyblizone miejsce zerowe: 1.52138