Предыдущий уровень изложения текущего раздела   Текущий уровень изложения предыдущего раздела   Неактивно   Неактивно   Уровень: Глоссарии:


ПАРАМЕТРЫ ПРОЦЕДУРНОГО ТИПА

Пример:

Составить программу для вычисления определенного интеграла по методу Симпсона. Вычисление подынтегральной функции реализовать с помощью функции, имя которой передается как параметр. Значение определенного интеграла по формуле Симпсона вычисляется по формуле:

ISimps=2*h/3*(0.5*F(A)+2*F(A+h)+F(A+2*h)+2*F(A+3*h)+... +2*F(B-h)+0.5*F(B))
где A и B - нижняя и верхняя границы интервала интегрирования,
N - число разбиений интервала интегрирования,
h=(B-A)/N, причем N должно быть четным.

Program INTEGRAL;
 type
 Func= function(x: Real): Real;
 var
 I,TN,TK:Real;
 N:Integer;
{$F+}
 Function Q(t: Real): Real;
 begin
 Q:=2*t/Sqrt(1-Sin(2*t));
 end;
{$F-}
 Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real);
 var
 sum, h: Real;
 j:Integer;
 begin
 if Odd(N) then N:=N+1;
 h:=(b-a)/N;
 sum:=0.5*(F(a)+F(b));
 for j:=1 to N-1 do
 sum:=sum+(j mod 2+1)*F(a+j*h);
 INT:=2*h*sum/3
 end;
 begin
 WriteLn(' ВВЕДИ TN,TK,N');
 Read(TN,TK,N);
 Simps(Q,TN,TK,N,I);
 WriteLn('I=',I:8:3)
end.