program ryad; //Заголовок программы
uses crt; //Зачем-то подключается модуль crt
function Fac(n: integer): LongInt; // Описывается рекурсивная функция вычисления факториала числа
begin //открывается операторная скобка
if n > 1 then // проверяется условие
fac := n * Fac(n-1) // выполняется оператор присваивания имени функции выражения, в выражении рекурсивно вызывается функция
else // слово "иначе"
fac:= 1; // присваивание имени функции 1
end; // закрывается операторная скобка
function power(c,st:real):real; // описывается функция возведения в степень
begin // уже было
power:=exp(st*ln©); // собственно возведение в степень
end; //было
var sl,x,s,e:real; // описываются глобальные переменные
k:integer;
begin // было
writeln('vvedite x'); // выводится сообщение на экран
readln(x); // считывается значение в переменную
writeln('e summa k'); //было
s:=0; //без комментариев
k:=1;
e:=0.001;
sl:=(1-power(x,4*k+3)/(fac(2*k+1)*(4*k+3))) ;
while sl>e do begin // задается цикл с предусловием
sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3)); //вычисляется слагаемое какого-то выражения
if k mod 2 = 0 then // к проверяется на четность
s:=s+sl // слагаемое добавляется в сумму
else
s:=s-sl; // слагаемое добавляется со знаком "-"
inc(k) // к увеличивается на 1
end;
writeln(e:6:6,' ',s,k);
s:=0; //здесь и далее зачем-то переписывается то же, что и в предыдущем фрагменте программы
k:=1;
e:=0.0001;
sl:=(1-power(x,4*k+3))/(fac(2*k+1)*(4*k+3));
while sl>e do begin
sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3));
if k mod 2 = 0 then
s:=s+sl
else
s:=s-sl;
inc(k)
end;
writeln(e:6:6,' ',s,k);
s:=0;
k:=1;
e:=0.00001;
sl:=(1-power(x,4*k+3))/(fac(2*k+1)*(4*k+3));
while sl>e do begin
sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3));
if k mod 2 = 0 then
s:=s+sl
else
s:=s-sl;
inc(k)
end;
writeln(e:6:6,' ',s,k);
s:=0;
k:=1;
e:=0.000001;
sl:=(1-power(x,4*k+3)/(fac(2*k+1)*(4*k+3)));
while sl>e do begin
sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3));
if k mod 2 = 0 then
s:=s+sl
else
s:=s-sl;
inc(k)
end;
writeln(e:6:6,' ',s:6:7,' ',k);
readln;
end.
Дальше предлагаю самостоятельно