как применить рекурсию? помогите пожалуйста
program r;
uses crt;
var a,b,s,ss,dx,x,p1,p2,p3,p4,p5,p:real;
i,n,m:integer;
begin
clrscr;
write ('a=');
readln (a);
write ('b=');
readln (b);
write ('m>0, m=');
readln (m);
if a<b then dx:=(b-a)/m else dx:=(a-b)/m;
x:=a;
ss:=0;
write ('n=0,1,2,3,...., n=');
readln (n);
if n=0 then for i:=1 to m do ss:=ss+exp(a*x)/a
else if n=1 then for i:=1 to m do begin
p1:=exp(a*x);
p2:=a*sin(b*x);
p3:=b*cos(b*x);
ss:=ss+p1*(p2-p3)/(a*a+sqr(n*b))
end
else while n>=1 do begin
p4:=n*(n-1)*b*b/(a*a+sqr(n*b));
s:=0;
for i:=1 to m do begin
p1:=exp(a*x);
p2:=a*sin(b*x);
p3:=b*cos(b*x);
p5:=exp((n-1)*ln(sin(b*x)));
s:=s+p1*p5*(p2-p3)/(a*a+sqr(n*b));
end;
ss:=ss+n*(n-1)*b*b*s/(a*a+sqr(n*b));
n:=n-2;
end;
writeln ('int=',ss*dx:0:5);
readln;
end.
Правильно ли я вообще решила