Lazarus

Комментарии

функции

Найти значение функции: y = cℎ(x) -x, если x>0 или y=cℎ(2x − 1) + х^2 , если x ≤ 0.Написать подпрограмму, вычисляющую гиперболический косинус по формуле: ch(x) = 1 + х^2 /2! + х^4 /4! + х^6 /6! + ⋯ + х^2n/ (2n)! + ⋯ с точностью 0.0001.
ребят помогите разобраться в этом. Объясните мне ход действий и как эта программа работает. Пожалуйста! Очень нужно

 const eps=0.0001;
function pow(x:real;y:longint):real; 
var f:real; 
i:longint; 
begin 
f:=1; 
for i:=1 to y do f:=f*x; 
pow:=f; 
end; 
 
function fact(x:longint):longint; 
var i,f:longint; 
begin 
f:=1; 
for i:=1 to x do f:=f*i; 
fact:=f; 
end; 
 
function ch(x:real):real; 
var n:longint; 
t,s:real; 
begin 
s:=0; 
t:=1; 
n:=0; 
while t>=eps do begin 
t:=pow(x,2*n)/fact(2*n); 
s:=s+t; 
n:=n+1; 
end; 
ch:=s; 
end; 
 
var x,y:real; 
begin 
readln(x); 
if x>0 then y:=ch(x)-x 
else y:=ch(2*x-1)+sqr(x); 
writeln(y); 
end.