PascalABC.NET 3.4.2, сборка 1864 от 11.11.2018
Внимание! Если программа не работает, обновите версию!
begin
var (x, eps) := (ReadReal('x='), 1e-4);
var (k, s, i) := ((x - 1) / x, 0.0, 1);
var (a, bp) := (k, 0.0);
while True do
begin
var b := a / i;
s += b;
if Abs(b - bp) <= eps then break;</p>
i += 1;
bp := b;
a *= k
end;
Println(s, Ln(x), 'Погрешность', Abs(s - Ln(x)))
end.
Пример
x= 1.96
0.672915370732901 0.672944473242426 Погрешность 2.91025095243702E-05