Добавил:
bagiwow
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:выч методы не разобраны! / Лаба№3 / Мишины / A_E_INT
.PAS Program A_E_integral;
uses
crt,graph;
const
a0=0.4;
b0=1.7;
n=3;
var
s,s1:char;
name:string;
f:integer;
integral,P,Q:real;
e0,e,a,b,a1,b1:real;
h:real;
Procedure Three(a,b:real);
var
y:array[0..3] of real;
begin
h:=(b-a)/3;
for f:=0 to 3 do
y[f]:=(sqr(a+f*h)+2.2)/sqrt(sqr(a+f*h)+1);
integral:=(3/8)*h*(y[0]+3*(y[1]+y[2])+y[3]);
{clrscr;
writeln('€вҐЈа « Ї® ¬Ґв®¤г 3/8 а ўҐ:');
writeln(integral);
readln;}
end;
Procedure Gauss(a,b:real);
var
x:array[0..n] of real;
y:array[0..n] of real;
const
t:array [0..n] of real=( -0.8611,-0.3400, 0.3400, 0.8611);
c:array [0..n] of real=( 0.3479, 0.6521, 0.6521, 0.3479);
begin
for f:=0 to n do
x[f]:=(a-b)/2+(b-a)*t[f]/2;
for f:=0 to n do
y[f]:=(sqr(x[f])+2.2)/sqrt(sqr(x[f])+1);
integral:=((b-a)/2)*(c[0]*y[0]+c[1]*y[1]+c[2]*y[2]+c[3]*y[3]);
clrscr;
writeln('€вҐЈа « Ї® ¬Ґв®¤г ѓ гбб а ўҐ:');
writeln(integral);
readln;
end;
Begin
clrscr;
writeln('‚ўҐ¤ЁвҐ Ї®ЈаҐи®бвм');
readln(e0);
{ writeln('Ђ Ґ ¦Ґ«aҐвҐ «Ё ‚л ЁбЇ®«м§®ў вм ¬Ґв®¤ 3/8?');
readln(s);
if (s='Y') or (s='y') then name:='Three'
else
begin
writeln('’®Ј¤ ¬®¦Ґв Ўлвм ¬Ґв®¤ ѓ гбб ?');
readln(s);
if (s='Y') or (s='y') then name:='Gauss'
else halt;
end;}
a1:=a0;b1:=b0;
repeat
three(a1,b1);
P:=integral;writeln('P=',P);
b:=(b1-a1)/2;a:=a1;
three(a,b);
Q:=integral;
a:=(b1-a1)/2;b:=b1;
three(a,b);
Q:=Q+integral;writeln('Q=',Q);
writeln('e=',(Q-P)*(b-a)/(15*h));
readln;
b1:=(b1-a1)/2;
until ((Q-P)/15)<=h*e0/(b0-a0);
End.
uses
crt,graph;
const
a0=0.4;
b0=1.7;
n=3;
var
s,s1:char;
name:string;
f:integer;
integral,P,Q:real;
e0,e,a,b,a1,b1:real;
h:real;
Procedure Three(a,b:real);
var
y:array[0..3] of real;
begin
h:=(b-a)/3;
for f:=0 to 3 do
y[f]:=(sqr(a+f*h)+2.2)/sqrt(sqr(a+f*h)+1);
integral:=(3/8)*h*(y[0]+3*(y[1]+y[2])+y[3]);
{clrscr;
writeln('€вҐЈа « Ї® ¬Ґв®¤г 3/8 а ўҐ:');
writeln(integral);
readln;}
end;
Procedure Gauss(a,b:real);
var
x:array[0..n] of real;
y:array[0..n] of real;
const
t:array [0..n] of real=( -0.8611,-0.3400, 0.3400, 0.8611);
c:array [0..n] of real=( 0.3479, 0.6521, 0.6521, 0.3479);
begin
for f:=0 to n do
x[f]:=(a-b)/2+(b-a)*t[f]/2;
for f:=0 to n do
y[f]:=(sqr(x[f])+2.2)/sqrt(sqr(x[f])+1);
integral:=((b-a)/2)*(c[0]*y[0]+c[1]*y[1]+c[2]*y[2]+c[3]*y[3]);
clrscr;
writeln('€вҐЈа « Ї® ¬Ґв®¤г ѓ гбб а ўҐ:');
writeln(integral);
readln;
end;
Begin
clrscr;
writeln('‚ўҐ¤ЁвҐ Ї®ЈаҐи®бвм');
readln(e0);
{ writeln('Ђ Ґ ¦Ґ«aҐвҐ «Ё ‚л ЁбЇ®«м§®ў вм ¬Ґв®¤ 3/8?');
readln(s);
if (s='Y') or (s='y') then name:='Three'
else
begin
writeln('’®Ј¤ ¬®¦Ґв Ўлвм ¬Ґв®¤ ѓ гбб ?');
readln(s);
if (s='Y') or (s='y') then name:='Gauss'
else halt;
end;}
a1:=a0;b1:=b0;
repeat
three(a1,b1);
P:=integral;writeln('P=',P);
b:=(b1-a1)/2;a:=a1;
three(a,b);
Q:=integral;
a:=(b1-a1)/2;b:=b1;
three(a,b);
Q:=Q+integral;writeln('Q=',Q);
writeln('e=',(Q-P)*(b-a)/(15*h));
readln;
b1:=(b1-a1)/2;
until ((Q-P)/15)<=h*e0/(b0-a0);
End.