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; // przykładowa funkcja: x^3 - x - 2
  9. }
  10.  
  11. int main() {
  12. double a, b, eps, c;
  13.  
  14. cout << "Podaj poczatek przedzialu a: ";
  15. cin >> a;
  16. cout << "Podaj koniec przedzialu b: ";
  17. cin >> b;
  18. cout << "Podaj dokladnosc eps: ";
  19. cin >> eps;
  20.  
  21. // Sprawdzenie warunku metody bisekcji
  22. if (f(a) * f(b) >= 0) {
  23. cout << "Funkcja nie zmienia znaku w tym przedziale." << endl;
  24. return 0;
  25. }
  26.  
  27. // Algorytm bisekcji
  28. while ((b - a) / 2.0 > eps) {
  29. c = (a + b) / 2.0;
  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.0;
  40.  
  41. cout << "Przyblizone miejsce zerowe: " << c << endl;
  42. cout << "f(x) = " << f(c) << endl;
  43.  
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
Podaj poczatek przedzialu a: Podaj koniec przedzialu b: Podaj dokladnosc eps: Funkcja nie zmienia znaku w tym przedziale.