fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. // Definicja funkcji
  7. double f(double x)
  8. {
  9. return x * x * x - x - 2; // przykładowa funkcja
  10. }
  11.  
  12. int main()
  13. {
  14. double a, b, eps, c;
  15.  
  16. cout << "Podaj poczatek przedzialu a: ";
  17. cin >> a;
  18. cout << "Podaj koniec przedzialu b: ";
  19. cin >> b;
  20. cout << "Podaj dokladnosc eps: ";
  21. cin >> eps;
  22.  
  23. // Sprawdzenie warunku istnienia miejsca zerowego
  24. if (f(a) * f(b) >= 0)
  25. {
  26. cout << "Brak zmiany znaku w przedziale!" << endl;
  27. return 0;
  28. }
  29.  
  30. // Metoda bisekcji
  31. while ((b - a) / 2.0 > eps)
  32. {
  33. c = (a + b) / 2.0;
  34.  
  35. if (f(c) == 0.0)
  36. break;
  37. else if (f(a) * f(c) < 0)
  38. b = c;
  39. else
  40. a = c;
  41. }
  42.  
  43. c = (a + b) / 2.0;
  44.  
  45. cout << "Przyblizone miejsce zerowe: " << c << endl;
  46. cout << "Wartosc funkcji f(c): " << f(c) << endl;
  47.  
  48. return 0;
  49. }
  50.  
Success #stdin #stdout 0.01s 5324KB
stdin
(6,1)
stdout
Podaj poczatek przedzialu a: Podaj koniec przedzialu b: Podaj dokladnosc eps: Brak zmiany znaku w przedziale!