Function cubrt(x:real):real;
var
pr:real; { приближенное значение кубического корня}
begin
pr:=sqrt(x); { первое приближение }
{ в качестве второго приближения выбираем (x:pr):pr }
while abs(pr-x/(pr*pr))>0.001 do
begin
{ новое приближение - среднее арифметическое
удвоенного приближения на прошлом шаге и текущего }
pr:=(2*pr+x/(pr*pr))/3;
end;
cubrt:=pr;
end;
{ Проерим, как работает cubrt }
begin
writeln(cubrt(3));
end.