const t:array [1..5]of real=(0.8325,0.37454,0,-0.37454,-0.8325); var m1,m2,a,b,eps: real; j:array[1..6]of real; i,k,n,nmax:longint; {//============================\\} {||} function f(x:real):real; {||} {||} begin {||} {||} f:=x+x*sin(x); {||} {||} end; {||} {\\============================//} function krTs(n:longint):real; var s:real; begin s:=0; for i:=0 to n-1 do s:=s+f(a+i*(b-a)/n)*(b-a)/n; krTs:=s; end; function laTs(n:longint):real; var s:real; begin s:=0; for i:=1 to n do s:=s+f(a+i*(b-a)/n)*(b-a)/n; laTs:=s; end; function vidTs(n:longint):real; var s:real; begin s:=0; for i:=0 to n-1 do s:=s+f(a+(i+0.5)*(b-a)/n)*(b-a)/n; vidTs:=s; end; function trap(n:longint):real; begin {trap:=(laTs(n)+krTs(n))/2;} trap:=(j[1]+j[2])/2; end; function Simsons(n:longint):real; var s,h:real; begin s:=0; if n mod 2=1 then inc(n); h:=(b-a)/n; for i:=1 to (n div 2) do s:=s+f(a+2*(i-1)*h)+4*f(a+2*(i-0.5)*h)+f(a+2*i*h); Simsons:=s/3*h; end; function Augst(n:longint):real; var s,au,a1,b1,h:real; l:longint; begin n:=n+4-((n-1) mod 5); h:=(b-a)/n; s:=0; for l:=1 to (n div 5) do begin au:=0; a1:=a+(l-1)*5*h; b1:=a1+5*h; for i:=1 to 5 do au:=au+f(0.5*(a1+b1)+0.5*(b1-a1)*t[i]); au:=au*(b1-a1)/5; s:=s+au; end; augst:=s; end; function viss(met,n:longint):real; begin case met of 1 :viss:=krTs(n); 2 :viss:=laTs(n); 3 :viss:=vidTs(n); 4 :viss:=trap(n); 5 :viss:=simsons(n); 6 :viss:=Augst(n); end; end; begin write('a=');readln(a); write('b=');readln(b); write('n_sak=');readln(n); write('n_max=');readln(nmax); if nmax<=0 then nmax:=maxlongint; write('eps=');readln(eps); writeln; writeln('| n | K.T.m. | L.T.m. | V.T.m. | Tr.m. | Sims.m. | Augst. |'); writeln('----------------------------------------------------------------------------'); repeat write('|',n:7,' | '); for k:=1 to 6 do begin j[k]:=viss(k,n); write(j[k]:8:4,' | '); end; writeln; m1:=j[1]; m2:=j[1]; for k:=2 to 6 do begin if m1>j[k] then m1:=j[k]; if m2nmax) or (m2-m1eps then write(' Max N! |') else write(' PrecSasn |'); readln; end.