Лабы / 2
.docxЗадание:
Вычислить определенный интеграл
.
4 |
трапеций |
автоматический выбор шага |
10-4 |
Код:
var
Form4: TForm4;
a,b,n,e:real;
implementation
{$R *.dfm}
Function f(x:real):real;
begin
F:=(1/(2*pi))*exp(-x*x); //функция
end;
Function int(p,l,k:real):real; //h=p ,a=l ,b=k
var
m,s:real; //m=x ; l=a
begin
m:=l;
s:=0;
while m<k do begin //пока a < b
m:=m+p; //m+шаг(высота)
s:=s+f(m);
end;
int:=p*(((f(l)+f(k))/2+s)); //обращение к функции
end;
procedure TForm4.Button1Click(Sender: TObject);
var
h,i1,i2:real;
begin
a:=strtoint(edit1.Text);
b:=strtoint(edit2.Text);
e:=strtofloat(edit3.Text);
n:=strtoint(edit4.text);
i1:=0;
h:=(b-a)/n; //высота
i2:=int(h,a,b); //integer буквы
while abs(i2-i1)>e do begin
h:=h/2;
i1:=i2;
i2:=int(h,a,b); //integer буквы
end;
edit5.text:=floattostr(i2); //вывод
end;
end.
Результат:
Блок схема:
Function F(x:real):real
F:=(1/2*pi)*exp(-x*x); a0=x
Конец
Function int(p,l,k:real):real
Ввод
p,l,k
S=0
m=l
a0=x
m<k
i=((F(l)+F(k))/2+s)*p
m=m+p
s=S+F(m) Конец
Начало
Ввод
a,b,n,ε
I1=0
h=(b-a)/n
I2=Int(h,a,b)
|I2-I1|>ε
Выв
I2
H=h/2
I1=I2
Конец