extern function sqrt ( x : real ): real; var sq,a,b : real; exponent,i : integer; zap : record case integer of 0 : (num : real); 1 : (ch8 : array [1..8] of char); end; begin if x = 0.0 then sqrt:=0.0 else begin sq:=abs(x); zap.num:=sq; exponent:=ord(zap.ch8[1]); exponent:=(exponent div 2) + 32; zap.ch8[1]:=chr(exponent); a:=zap.num; b:=0; i:=0; while a <> b do begin b:=sq/a; a:=(a+b)/2; i:=i+1; if i > 4 then begin i:=0; if abs(a-b) < (1.0e-12 * a) then a:=b; end; end; sqrt:=a; end; (* else *) end; (* sqrt *).