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

Условие: Для заданных границ интегрирования а и 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.


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