программирование, помогите
program kop;
uses crt;
var x,f,f1,a:real;
begin
x:=4.3;
f:=((0.14*(1+(2/2.3)*(x/4.6)*(x/4.6)))/(sqrt(x)*sqrt(1-(x/4.6)*(x/4.6))));
f1:=((1.15/100)*sqrt(x)/sqrt(1-(4.72/100)*x*x)-(7/100)*(1+(4.11/100)*x*x)/sqrt(x*x*x*(1-(4.72/100)*x*x)+(6.62/1000)*(1+(4.11/100)*x*x)*sqrt(x)/sqrt((1-(4.73/100)*x*x)*(1-(4.73/100)*x*x)*(1-(4.73/100)*x*x))));
repeat
if(x>2.3) and (x<4.6) then
begin
a:=x;
x:=abs(a-f/f1);
f:=((0.14*(1+(2/2.3)*(x/4.6)*(x/4.6)))/(sqrt(x)*sqrt(1-(x/4.6)*(x/4.6))));
f1:=((1.15/100)*sqrt(x)/sqrt(1-(4.72/100)*x*x)-(7/100)*(1+(4.11/100)*x*x)/sqrt(x*x*x*(1-(4.72/100)*x*x)+(6.62/1000)*(1+(4.11/100)*x*x)*sqrt(x)/sqrt((1-(4.73/100)*x*x)*(1-(4.73/100)*x*x)*(1-(4.73/100)*x*x))));
writeln(x);
end;
until abs(f)<0.000001;
end.
не пойму, почему не работает