Скачиваний:
289
Добавлен:
04.03.2014
Размер:
2.66 Кб
Скачать
program integral;
uses crt;
label 1,2,3,4,5,6,7,8;
var
t,s,u,d,h,I,Ip,a,b,e,sw,ss,sd,r:real;
l,k,m,n,w,j,pp,tp,sp:integer;
c,v,z:char;
function fi(x:real):real;
begin fi:=x;end;
BEGIN
8:clrscr;writeln('');
writeln('ЊҐв®¤л: Їаאַ㣮«м­ЁЄ®ў-1;ва ЇҐжЁ©-2;Ї а Ў®«-3');
write(' *:');readln(v);pp:=0;tp:=0;sp:=0;
begin
if v='1' then goto 1;if v='2' then goto 2;if v='3' then goto 3;end;
1:;4:
clrscr;writeln(' ЊҐв®¤ Їаאַ㣮«м­ЁЄ®ў.');
begin write('m:');readln(m);
if pp=0 then begin
write('a:');readln(a);
write('b:');readln(b);
write('e:');readln(e);Ip:=0;
u:=sqrt(e);
n:=round((b-a)/u)+1;
h:=(b-a)/n;
end;
writeln(' Ip',' I',' I-Ip');
for k:=1 to m do begin s:=0;
for j:=1 to n do begin
s:=s+fi(a+(j-1/2)*h);end;
I:=s*h;
writeln(Ip:16,' ',I:16,' ',abs(I-Ip):16);
Ip:=I;h:=h/2;n:=n*2;
end;
write(' Їа®¤®«¦ вм?(y/n):');readln(c);
if c='y' then begin pp:=1;goto 4;end;
if c='n' then
begin clrscr;
writeln(' ‚л室?(y/n)');
readln(z);
if z='y' then goto 7;
if z='n' then goto 8;
end;end;
2:;5:
clrscr;writeln(' ЊҐв®¤ ва ЇҐжЁ©.');
BEGIN
write('m:');readln(m);
if tp=0 then begin
write('a:');readln(a);
write('b:');readln(b);
write('e:');readln(e);
Ip:=0;
u:=sqrt(e);
n:=round((b-a)/u)+1;
h:=(b-a)/n;
end;
writeln(' Ip',' I',' I-Ip');
for k:=1 to m do
begin s:=0;
for j:=1 to n do
begin
s:=s+(fi(a+(j-1)*h)+fi(a+j*h));
end;
I:=s*(h/2);
writeln(Ip:16,' ',I:16,' ',abs(I-Ip):16);
Ip:=I;h:=h/2;n:=n*2;
end;
begin
write(' Їа®¤®«¦ вм ? (y/n):');readln(c);
if c='y' then begin tp:=1;goto 5;end;
if c='n' then begin clrscr;
writeln(' ‚л室?(y/n)');readln(z);
if z='y' then goto 7 else goto 8;
end;end;END;
3:;6:
clrscr;
writeln(' ЊҐв®¤ Ї а Ў®«.');
BEGIN
write('m:');readln(m);
if sp=0 then begin
write('a:');readln(a);
write('b:');readln(b);
write('e:');readln(e);
Ip:=0;
u:=sqrt(e);
n:=round((b-a)/u)+1;
d:=frac(n/2);
if d<>0 then n:=n+1;
h:=(b-a)/n;
end;
writeln(' Ip',' I',' I-Ip');
for k:=1 to m do begin
sw:=fi(a);ss:=0;sd:=0;
for j:=1 to n do begin
r:=fi(a+j*h);
if (j=n) then sw:=sw+r else
if j mod 2=1 then ss:=ss+r else
if j mod 2=0 then sd:=sd+r;
end;
I:=(sw+4*ss+2*sd)*h/3;
writeln(Ip:16,' ',I:16,' ',abs(I-Ip):16);
Ip:=I;h:=h/2;n:=n*2;
end;
begin
write(' Їа®¤®«¦ вм ? (y/n):');readln(c);
if c='y' then begin sp:=1;goto 6;end
else begin clrscr;
writeln(' ‚л室?(y/n)');readln(z);
if z='y' then goto 7 else goto 8
end;end;end;
7:
end.







Соседние файлы в папке Alex