var
i, N: integer;
Sum, a, x, y: real;
begin
write('x = ');
readln(x);
Sum := x; { <== Начальная сумма равна первому члену x }
{ Далее выполнять программу имеет смысл только при x ≠ 0
(в противном случае все слагаемые равны 0): }
if x <> 0 then
begin
write('N = ');
readln(N);
a := x; { <== Первое слагаемое в данной сумме }
y := sqr(x); { <== Запоминаем x в квадрате }
for i := 1 to N do
begin
{ Для вычисления i-го значения предыдущее значение
умножаем на x в квадрате (число y) и
делим на произведение последовательных натуральных чисел: }
a := a * y / (2 * i * (2 * i + 1));
Sum := Sum + a { <== Находим сумму }
end
end;
writeln;
writeln('Значение суммы: ', Sum:0:5);
readln
end.