fork(1) 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 - 2;
  10. }
  11.  
  12. int main()
  13. {
  14. double a, b, srodek;
  15. double eps = 0.000001; // dokladnosc
  16.  
  17. cout << "Podaj poczatek przedzialu a: ";
  18. cin >> a;
  19.  
  20. cout << "Podaj koniec przedzialu b: ";
  21. cin >> b;
  22.  
  23. // sprawdzenie warunku metody bisekcji
  24. if (f(a) * f(b) >= 0)
  25. {
  26. cout << "Brak miejsca zerowego w tym przedziale." << endl;
  27. return 0;
  28. }
  29.  
  30. // petla bisekcji
  31. while ((b - a) / 2 > eps)
  32. {
  33. srodek = (a + b) / 2;
  34.  
  35. if (f(srodek) == 0)
  36. break;
  37. else if (f(a) * f(srodek) < 0)
  38. b = srodek;
  39. else
  40. a = srodek;
  41. }
  42.  
  43. srodek = (a + b) / 2;
  44.  
  45. cout << "Przyblizone miejsce zerowe: " << srodek << endl;
  46.  
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0.01s 5284KB
stdin
-200 100
stdout
Podaj poczatek przedzialu a: Podaj koniec przedzialu b: Przyblizone miejsce zerowe: 1.25992