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, eps, c;
  13.  
  14. cout << "Podaj a: ";
  15. cin >> a;
  16. cout << "Podaj b: ";
  17. cin >> b;
  18. cout << "Podaj dokladnosc eps: ";
  19. cin >> eps;
  20.  
  21. // Sprawdzenie warunku początkowego
  22. if (f(a) * f(b) >= 0) {
  23. cout << "Brak zmiany znaku w przedziale!" << endl;
  24. return 0;
  25. }
  26.  
  27. // Algorytm bisekcji
  28. while ((b - a) / 2 > eps) {
  29. c = (a + b) / 2;
  30.  
  31. if (f(c) == 0.0)
  32. break;
  33. else if (f(a) * f(c) < 0)
  34. b = c;
  35. else
  36. a = c;
  37. }
  38.  
  39. c = (a + b) / 2;
  40. cout << "Przyblizone miejsce zerowe: " << c << endl;
  41.  
  42. return 0;
  43. }
  44.  
Success #stdin #stdout 0.01s 5328KB
stdin
Standard input is empty
stdout
Podaj a: Podaj b: Podaj dokladnosc eps: Brak zmiany znaku w przedziale!