лямбда-пауа! Не уверен, что это правильно (нет программиста на C #! Просто нравится его лямбда-ноты)
(a, b, c) => {
double sum = 0.0;
Func<double, double> dox = (x) => a + x*(b-a)/100.0;
// Evaluate integral{a,b} f(x) dx
for(int n = 0 ; n <= 100; ++n)
sum += c(dox(n)) * (b-a)/101.0;
return sum;
}
Хорошо, я думаю, что пока код на C ++, почему бы не сохранить его на C ++ и не вводить лямбду? Вот как это выглядит для c ++ 0x, который, как мы надеемся, выйдет в качестве стандарта очень скоро:
static double Integrate(double a, double b, function<double(double)> f)
{
double sum = 0.0;
// Evaluate integral{a,b} f(x) dx
for(int n = 0; n < 100; ++n) {
double x = a + n * (b - a) / 100.0;
sum += f(x) * (b - a) / 101.0;
}
return sum;
}
int main() {
Integrate(0, 1, [](double a) { return a * a; });
}