Чтобы уменьшить количество вычислений, преобразуем формулу к рекуррентной.
Теперь все готово для программирования. // PascalABC.NET 3.2, сборка 1353 от 27.11.2016
var i,n:integer; a,s:real; begin Write('n='); Read(n); if n=1 then Writeln('S=1') else if n=2 then Writeln('S=0.5') else begin s:=0.5; a:=0.5; for i:=3 to n do begin a:=a/i; s:=s-a end end; Writeln('S=',s) end.
Теперь все готово для программирования.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
var
i,n:integer;
a,s:real;
begin
Write('n='); Read(n);
if n=1 then Writeln('S=1')
else
if n=2 then Writeln('S=0.5')
else begin
s:=0.5; a:=0.5;
for i:=3 to n do begin a:=a/i; s:=s-a end
end;
Writeln('S=',s)
end.
Пример
n=10
S=0.281718198853615