fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. // Definicja funkcji f(x)
  7. double f(double x)
  8. {
  9. return sin(x);
  10. }
  11.  
  12. // Metoda prostokątów
  13. double metodaProstokatow(double a, double b, int n)
  14. {
  15. double dx = (b - a) / n;
  16. double s = 0.0;
  17. double x = a;
  18.  
  19. for (int i = 1; i <= n; i++)
  20. {
  21. x = x + dx; // przesunięcie do prawego końca przedziału
  22. s = s + dx * f(x); // pole prostokąta
  23. }
  24.  
  25. return s;
  26. }
  27.  
  28. int main()
  29. {
  30. // Przykład 1
  31. double a1 = 0.0;
  32. double b1 = 3.14;
  33. int n1 = 10;
  34. double s1 = metodaProstokatow(a1, b1, n1);
  35.  
  36. // Przykład 2
  37. double a2 = 0.0;
  38. double b2 = 3.14;
  39. int n2 = 100;
  40. double s2 = metodaProstokatow(a2, b2, n2);
  41.  
  42. cout << "s1 (n = 10) = " << s1 << endl;
  43. cout << "s2 (n = 100) = " << s2 << endl;
  44.  
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0s 5328KB
stdin
Standard input is empty
stdout
s1 (n = 10)  = 1.98379
s2 (n = 100) = 1.99986