Тема: Функції користувача
Створив нову тему бо по поередній 
(Re: Рекурентне співвідношення) відповіді не отримав.
Свою програму хочу  переробити використовуючи в ній власні функції для обчислення  виразу і степеня за зразком:[img](завдання на фото)[/img]
 Program Laba_6;  (обчислення факторіалу)
uses crt; 
Const 
E=0.00001; {задаємо значення E за допомогою константи} 
Var 
i : integer; {ціла змінна для циклу}  
n: integer; {змінна для значення n} 
а: real; {дійсна змінна для членів ряду} 
x: real; {дійсна змінна для значення X} 
Function Fact(n:integer):real; {функція обчислення факторіалу} 
Var 
i:integer; {допоміжні змінні} 
k:real; 
begin 
k:= 1; {початкове значення} 
for i:= 2 to n do k:= k*i;{так знаходимо n!} 
Fact:=k; {кінцеве значення функції} 
end; 
Function Pow_n(x:real, n:integer):real; {функція обчислення ступеню} 
Var 
i:integer; {допоміжні змінні} 
k:real; 
begin 
k:= 1; {початкове значення } 
for i:=1 to n do k:= k*x; {так знаходимо ступінь} 
Pow_n:=k; {кінцеве значення функції} 
end; 
Begin 
clrsrc; 
Write(’Введіть значення X:’); 
Readln(x); 
Write(’Введіть значення N:’); 
Readln(n); 
i:=0; {початкове значення i} 
s:=0; {початкове значення суми}  
Repeat 
a:= Pow_n(-1,i)*Pow_n(x,2*i+1)/ Fact(n+1+i); {обчислюємо і-тий член ряду} 
s:= s+a; {сумма i – перших членів ряду} 
inc(i); {збільшуємо i на 1} 
Until abs(a)<E; 
Writeln(’i=’, i-1);{виводимо значення i на 1 менше} 
Writeln(’a=’, a:10:6); 
Writeln(’s=’, s:10:5); 
End.
   
ТЕПЕР МОЯ ПРОГРАМА:(завдання на фото у темі Re: Рекурентне співвідношення)
Program korin;
 Uses Crt;
Var    xn1, xn :real;
        a,p:integer;
Begin
 CLRSCR;
    Writeln(' Vvedit A :');
    Readln(a);
    Writeln(' Vvedit P :');
    Readln(p);
  xn1:=a;
  Repeat
      xn:=xn1;
      xn1:=1/p*((p-1)*xn+a/exp(p-1*ln(xn)));
      until abs(xn1-xn) < 0.000001;
 
     Writeln('xn1=',xn1);
     Readln
End.
  Моя мета подати форму  xn1:=1/p*((p-1)*xn+a/exp(p-1*ln(xn))); у вигляді xn1:=1/p*Viraz/Pow_n.
Function Viraz  - (маю наувазі частину формули (p-1)*xn+a).
Function Pow_n - (функція піднесення до степеня, ( exp(p-1*ln(xn)
Починаю складати функцію піднесення до степеня.
Function Pow_n(x:real, n:integer):real;
Var
i:integer; {допоміжні змінні функції}
P :real;
begin Що робити далі і як правельно записати цю та іншу функцію, нерозумію.