Вычисление интеграла функции f(x) методом Симпсона

for m:=1 to n-2 do s:=s+f (a+m*h); { Суммиование остальных элементов}

trap:=s*h; { Возвращается значение интеграла }

end;

{ Метод Симпсона }

function simpson (a, b: real;n:integer):real;

var

s: real; { Сумма }

h: real; { Шаг }

m: integer; { Счетчик }

mn: integer; { Очередной множитель }

begin

h:=(b-a)/(n-1); { Рассчитывается шаг }

s:=f (a)+f (b); { Начальное значение шага }

mn:=4; { Первый мнодитель — 4 }

{ Суммирование остальных элементов }

for m:=1 to n-2 do begin

s:=s+mn*f (a+h*m);

if (mn=4) then mn:=2 else mn:=4;{ Именение мноителя 2<>4 }

end;

simpson:=s*h/3; { Возвращается вычисленное значение }

end;

{ Процедура вычисления порядка числа }

procedure norm (a:real);

var n: real;

begin

{ Если число слишком мало — возвращается ноль }

if (a<0.1) then n:=0

else begin

{ Если число меньше единицы }

if (a<1) then begin

n:=1;