var i : integer;
eps, a, s : real;
begin
write("eps = ");
read(eps);
i := 1;
a := 1;
s := a;
while(a >= eps) do
begin
i := i * 2;
a := 1 / i;
s := s + a;
end;
write("S = ", s);
end.
Вариант 2
Var n,i:integer;
s,t:double;
begin
writeln('enter pogreshnost');
readln(n);
s:=0;i:=0;
repeat
begin
t:=1/exp(i*ln(2));
s:=s+t;
i:=i+1
end;
until t=n;
writeln('s(pri pogreshnosti', n, ')=', s:6:3)
end.