program logaritm; function macht(x : double; n : integer) : double; var m : integer; p, y : double; begin m := n; y := x; p := 1; while m > 0 do begin if (m and 1) > 0 then p := p * y; m := m shr 1; y := y * y; end; macht := p; end; procedure test; { Just a Test } var M, k : integer; delta, onder, boven, x : double; begin M := 1000; delta := exp(1/M*ln(10))-1; onder := (1/(1+delta/2))*delta*M; boven := (1/(1+delta)+1)/2*delta*M; Writeln(onder,' < ',ln(10),' < ',boven); delta := 1.E-3; onder := (1/(1+delta/2))*delta*M; boven := (1/(1+delta)+1)/2*delta*M; x := macht(1+delta,M); Writeln(x); Writeln(onder,' < ',ln(x),' < ',boven); delta := 2; M := 1; for k := 1 to 5 do begin delta := sqrt(delta); M := M * 2; end; delta := delta - 1; onder := (1/(1+delta/2))*delta*M; boven := (1/(1+delta)+1)/2*delta*M; x := macht(1+delta,M); Writeln(delta,' ',M,' ',x); Writeln(onder,' < ',ln(x),' < ',boven); end; begin test; end.