#include <iostream>
#include <utility>
#include <cmath>
using namespace std;

double compute_by_rectangle_method(double from, double to, double precision, double (*func)(double) ) {
  if(to < from){
    return compute_by_rectangle_method(to, from, precision, func);
  }
  double accumulator = 0.0;
  for(double i = from + precision; i < to; i += precision) {
    accumulator += func(i);
  }
  return accumulator * precision;
};

int main() {
  double from = 0.0;  //prompt_for_double("Enter lower limit of integral: ");
  double to = 1000.0; //prompt_for_double("Enter upper limit of integral: ");
  double result = compute_by_rectangle_method(from, to, 1.0, [](double x){
  	return std::sin(x) + std::sqrt(x) * std::cos(x/3);
  });
  cout << result;
  return 0;
}