fork download
  1. // mrys038.cpp
  2. #include <iostream>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. // Definicja funkcji f(x)
  8. double f(double x)
  9. {
  10. // Przykładowa funkcja: f(x) = x^2 - 2
  11. return x * x - 2;
  12. }
  13.  
  14. int main()
  15. {
  16. double a, b, eps, c;
  17.  
  18. cout << "Podaj poczatek przedzialu a: ";
  19. cin >> a;
  20. cout << "Podaj koniec przedzialu b: ";
  21. cin >> b;
  22. cout << "Podaj dokladnosc eps: ";
  23. cin >> eps;
  24.  
  25. if (f(a) * f(b) >= 0)
  26. {
  27. cout << "Funkcja nie zmienia znaku w podanym przedziale." << endl;
  28. return 1;
  29. }
  30.  
  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. cout << "Przyblizone miejsce zerowe: " << c << endl;
  45.  
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0.01s 5284KB
stdin
1
2
0.0001
stdout
Podaj poczatek przedzialu a: Podaj koniec przedzialu b: Podaj dokladnosc eps: Przyblizone miejsce zerowe: 1.41425