Не могу понять почему не работает
Program integ;
const a=0; b=1; E=0.0001;
var R,S,Si:real;
x,h:real;
n,i:integer;
function F(x:real):real;
begin
F:=sin(x+x*x*x);
end;
Function Sim(n:integer):real;
begin
h:=abs(b-a)/n;
S:=0;x:=a;
for i:=1 to n do
begin
Si:=(f(x)+4*f(x+h/2)+f(x+h))*h/6;
S:=S+Si;
x:=x+h;
end;
Sim:=S;
end;
Begin
n:=1;
R:=abs(Sim(n)-Sim(n*2))/15;
while(R>E) do n:=2*n;
writeln('S=',Sim(n):7:10);
readln;
end.
На какой строчке программа вылетает?
[telepathy on]
while(R>E) do n:=2*n;
Везде поменяла на extended, кроме i, и всё заработало! Спасибо за помощь)
После одной лишь замены типа цикл перестал уходить в бесконечность?!
Чудеса...
Program integ;
const
a= 0;
b= 1;
E= 0.0001;
var
R,S,Si: real;
x,h: real;
n,i: integer;
function F(x: real): real;
begin
F:= sin(x+x*x*x);
end;
Function Sim(n: integer): real;
begin
h:= abs(b-a)/n;
S:= 0;
x:= a;
for i:=1 to n do begin
Si:= (f(x)+4*f(x+h/2)+f(x+h))*h/6;
S:= S+Si;
x:= x+h;
end;
Sim:= S;
end;
Begin
n:= 1;
repeat
n:= n*2;
R:= abs(Sim(n div 2)-Sim(n))/15;
until R<=E;
writeln('S=',Sim(n):7:10);
readln
end.