fork(2) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. // Funkcja, dla której szukamy miejsca zerowego
  6. double f(double x)
  7. {
  8. return x * x * x - x - 2; // f(x) = x^3 - x - 2
  9. }
  10.  
  11. int main()
  12. {
  13. double a, b, eps, srodek;
  14.  
  15. cout << "Podaj a: ";
  16. cin >> a;
  17.  
  18. cout << "Podaj b: ";
  19. cin >> b;
  20.  
  21. cout << "Podaj dokladnosc eps: ";
  22. cin >> eps;
  23.  
  24. // Sprawdzenie warunku zmiany znaku
  25. if (f(a) * f(b) >= 0)
  26. {
  27. cout << "Brak miejsca zerowego w tym przedziale." << endl;
  28. return 0;
  29. }
  30.  
  31. // Metoda bisekcji
  32. while ((b - a) > eps)
  33. {
  34. srodek = (a + b) / 2;
  35.  
  36. if (f(srodek) == 0)
  37. break;
  38. else if (f(a) * f(srodek) < 0)
  39. b = srodek;
  40. else
  41. a = srodek;
  42. }
  43.  
  44. srodek = (a + b) / 2;
  45. cout << "Przyblizone miejsce zerowe: " << srodek << endl;
  46.  
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Podaj a: Podaj b: Podaj dokladnosc eps: Brak miejsca zerowego w tym przedziale.