#include <iostream>

// Forward definitions
double integrate(double a, double b, double n, double f(double x));
double cube(double x);
double sqr(double x);


int main() {
  cout << "Integral of x^2 in [0,1] = " 
       << integrate(0.0, 1.0, 10000, sqr)
       << endl;
  cout << "Integral of x^3 in [0,1] = " 
       << integrate(0.0, 1.0, 10000, cube)
       << endl;
}

double integrate(double a, double b, double n, double f(double x)) {
  double delta = (b-a) / double(n);
  double sum = 0.0;
  for (int i=0; i<n; i++) {
    sum += f(a + delta * i) * delta;
  }
  return sum;
}

double cube(double x) {
  return x * x * x;
}

double sqr(double x) {
  return x * x;
}
