利用委托 求解函数y=x*x与x轴所围成的曲边梯形的面积。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 委托
{
class Program
{
//被积函数
static double F1(double x)
{ return x * x+1; }
//被积函数的委托
delegate double Intergrand(double x);//定义了一个委托,委托函数的返回值与参数要与被委托函数一致!
static double DefiniteIntegrate(double a, double b, Intergrand f)//委托的对象f变成此方法的参数了
{
const int sect = 1000;//分割数目
double delta = (b - a) / sect;
double area = 0;
for (int i = 1; i <= 1000; i++)
{
area += delta * f(a + i * delta);
}
return area;
}
static void Main(string[] args)
{
//Intergrand f1=new Intergrand (F1); // 同下
Intergrand f1=F1;
double result1 = DefiniteIntegrate(0, 5, f1);
Console.WriteLine(result1);
}
}
}