Основы программирования на C#


Вычисление интеграла - часть 2


Чтобы продемонстрировать работу с классом HighOrderIntegral, приведу еще класс Functions, где описано несколько функций, удовлетворяющих контракту, который задан классом SubIntegralFun:

class functions { //подынтегральные функции static public double sif1(double x) { int k = 1; int b = 2; return (double)(k*x +b); } static public double sif2(double x) { double a = 1.0; double b = 2.0; double c= 3.0; return (double)(a*x*x +b*x +c); } }//class functions

А теперь рассмотрим метод класса клиента, выполняющий создание нужных объектов и тестирующий их работу:

public void TestEvalIntegrals() { double myint1=0.0; HighOrderIntegral.SubIntegralFun hoisif1 = new HighOrderIntegral.SubIntegralFun(functions.sif1); HighOrderIntegral hoi = new HighOrderIntegral(); myint1 = hoi.EvalIntegral(2,3,0.1e-5,hoisif1); Console.WriteLine("myintegral1 = {0}",myint1); HighOrderIntegral.SubIntegralFun hoisif2 = new HighOrderIntegral.SubIntegralFun(functions.sif2); myint1= hoi.EvalIntegral(2,3,0.1e-5,hoisif2); Console.WriteLine("myintegral2 = {0}",myint1); }//EvalIntegrals

Здесь создаются два экземпляра делегата и объект класса HighOrderIntegral, вызывающий метод вычисления интеграла. Результаты работы показаны на 20.2.

Вычисление интеграла с использованием функций высших порядков

Рис. 20.2.  Вычисление интеграла с использованием функций высших порядков




Начало  Назад  Вперед



Книжный магазин