1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
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.
Внимательно вглядись вот в эту строчку: while(R>E) do n:=2*n; - и я уверен, через некоторое время поймешь )).
Вот тебе исправленный (и правильно отформатированный) твой же код:
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.
Добавлено через 3 мин. Ой, я, кажется, не обновил браузер.. Мужики, извините, стирать уже не буду.. ))
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой