основная формула Y=exp((-1/3)*ln(x))
формула вычисления "текущего" значения Y(t)=Y(p)*(4+3*(x^3)*(sqrt(Yp))
счётчик итераций k=0,1,2...
Y(0)=6 x=277234 E=0,000001
Условие завершение цикла |Yt-Yp|<E
по завершению цикла высчитать Y по первой формуле
Program Post;
uses crt;
procedure pagelist;
begin
if wherey > 23 then
begin
writeln('dlia prodolzenia nazmite ENTER');
readln;
clrscr;
end;
end;
var k:integer;
x:single;
E,yt,yp,y:single;
begin
E:=0.0000001;
k:=0;
x:=277234;
yt:=6;
repeat;
if k>55 then writeln('nevozmogno dostignut predela tochnosti')
else
begin
yp:=yt;
if(yt>0) then
begin
yt:=yp*(4+3*exp(3*ln(yp)));
writeln('k=',k,' Yt=',yt:10:5,' Yp=',yp:10:5);
end;
pagelist;
k:=k+1;
end;
until abs(yt-yp)<E;
y:=exp((-1/3)*ln(x));
writeln('kol-vo interacii',k,' y=',y:10:5);
end.
выдаёт floating point overflow хотя деления на 0 я не вижу!
что делать?