Посмотрите код на правильность. Неделю ломаю голову с этой задачей.

Условие: Для заданных границ интегрирования а и b вычислите значение определенного интеграла следующего вида:

Нажмите для просмотра прикрепленного файла

function IntPow(x: real; n: integer): real;
var
r: real;


begin
r:= 1;
if n < 0 then begin
n:= -n;
x:= 1 / x
end;


while n>0 do
begin
r:= r * x;
Dec(n)
end;


IntPow:=r


end;


function f(x: real; n: integer): real;
begin
case n of
0: f := x;
1: f:= ln( sin(x/2) / cos(x/2) );
else
f:= -( (1 / (n - 1) )*( cos(x) ) / IntPow( sin(x),n-1) ) + (n - 2) / (n - 1) * f(x, n - 2);
end
end;


var
n,x: integer;


begin
writeln('Введите степень n');
readln(n);
writeln('Введите число x');
readln(x);
writeln('Результат: ',f(x,n))
end.


Буду признателен!