#include <iostream.h>

double integrate(double lo, double hi, double delta, double (*f)(double))
{
	double area = 0;
	for(double x = lo; x <= hi; x +=delta)
	{
		area += delta * ((*f)(x) + (*f)(x+delta))/2;
	}
	return area;
}

double square(double x)
{
	return x*x;
}

double cube(double x)
{
	return x*x*x;
}

double bob(double x)
{
	return x*x + 5*x + 3;
}

void main()
{
		cout << integrate(1.0, 2.0, 0.1, square) << endl;
		cout << integrate(2.0, 3.0, 0.001, cube) << endl;
		cout << integrate(1.0, 2.0, 0.001, bob) << endl;
}
