Guest User

Untitled

a guest
Dec 12th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class Logger {
  4. public:
  5. virtual void log(double step, double sq) {
  6. }
  7. };
  8.  
  9. class NoLogger : public Logger {
  10. };
  11.  
  12. class StdOutLogger : public Logger {
  13. public:
  14. virtual void log(double step, double sq) {
  15. std::cout << "Step: " << step
  16. << ", Square: " << sq << std::endl;
  17. }
  18. };
  19.  
  20.  
  21. double f(double x) {
  22. return x*x*x -3*x*x + 5;
  23. }
  24.  
  25.  
  26. double square(Logger * log, double step) {
  27. double s = 0;
  28. for ( double x = 0; x < 10; x += step )
  29. s += f(x) * step;
  30. log->log(step, s);
  31. return s;
  32. }
  33.  
  34. double square(Logger * log) {
  35. double step = 2;
  36. double s1, s2 = square(log, step);
  37. do {
  38. s1 = s2;
  39. step /= 2;
  40. s2 = square(log, step);
  41. } while (abs(s1-s2) > 0.00001);
  42.  
  43. return s2;
  44. }
  45.  
  46. void main() {
  47. std::cout << square(new StdOutLogger());
  48. }
Add Comment
Please, Sign In to add comment