Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №1 / Процедуры_методов+

.txt
Скачиваний:
24
Добавлен:
02.05.2014
Размер:
2.97 Кб
Скачать

------------- Метод дихотомии ----------------

procedure TForm1.BitBtn2Click(Sender: TObject);
var
m : integer;
a,b,d,e,x,y1,y2,X5,Y5 : real;
label giim;
begin
a := StrToCurr(form1.Edit1.Text);
b := StrToCurr(form1.Edit2.Text);
e := StrToCurr(form1.Edit3.Text);
d := e/100;
m:=0;
giim:
x := (a+b)/2;
y1 := abs(x-d)+exp(10*(x-d));
y2 := abs(x+d)+exp(10*(x+d));
if y1<y2 then b:=x+d
else a:=x-d;
m:=m+2;
if (b-a) <= 2*e then
begin
X5:=(a+b)/2;
Y5:=abs(x5)+exp(10*(x5));
end
else goto giim;
Form1.Label1.Caption := IntToStr(m);
Form1.Label2.Caption := currToStr(X5);
Form1.Label3.Caption := currToStr(Y5);
end;


------------- Пассивный метод -----------------

procedure TForm1.BitBtn6Click(Sender: TObject);
var
n,r: integer;
a,b,e,X5,Y5,k,x,y,d,x1,h : currency;
label lop,loop;
begin
a := StrToCurr(form1.Edit8.Text);
b := StrToCurr(form1.Edit9.Text);
e := StrToCurr(form1.Edit10.Text);
d := e/100;
h := ((b-a)/e)-1;
Form1.Label21.Caption := CurrToStr(h);
n := StrToInt(form1.Label21.Caption);
if (n mod 2)<>0 then begin
r := 1;
lop:
x := a+(((b-a)/(n+1))*r);
y := abs(x)+exp(10*x);
if y<Y5 then begin
Y5 := y; X5 := x; end;
r := r+1;
if n<>r then goto lop;
end
else begin
r := 1;
loop:
x := a+(((b-a)/(n+1))*r);
x1 := x-d;
y := abs(x1)+exp(10*x1);
if y<Y5 then begin
Y5 := y; X5 := x1; end;
r := r+1;
if n<>r then goto loop;
end;
n := StrToInt(form1.Label21.Caption);
Form1.Label18.Caption := IntToStr(n);
Form1.Label19.Caption := CurrToStr(X5);
Form1.Label20.Caption := CurrToStr(Y5);
end;



-------- Метод касательных -------------

procedure TForm1.BitBtn8Click(Sender: TObject);
var
a : real;
m : integer;
d,b,e,c,y1,y2,z1,z2,y,z,Y5,X5 : currency;
label looop, lop, loop;
begin
a := StrToCurr(form1.Edit11.Text);
b := StrToCurr(form1.Edit12.Text);
e := StrToCurr(form1.Edit13.Text);
d := e/100;
y1 := abs(a)+exp(10*a);
y2 := abs(b)+exp(10*b);
if (a>0)and(b=0) then z1 :=1+10*exp(10*a);
if (a<0)and(b=0) then z1 :=-1+10*exp(10*a);
if (b>0)and(a=0) then z2 :=1+10*exp(10*b);
if (b<0)and(a=0) then z2 :=-1+10*exp(10*b);
m := 2;


while (b-a)>(2*e) do begin

c := ((b*z2 - a*z1)-(y2 - y1))/(z2 - z1);
y := abs(c)+exp(10*c);
if c>0 then z :=1+10*exp(10*c);
if c<0 then z :=-1+10*exp(10*c);

if z = 0 then begin
X5 := c; Y5 := y;
goto looop; end;

if z < 0 then begin
a := c; y1 := y; z1 := z;
end;

if z > 0 then begin
b := c; y2 := y; z2 := z;
end;

m:=m+1;
end;

looop:
X5 := (a+b)/2;
Y5 := abs(X5)+exp(10*X5);
Form1.Label25.Caption := IntToStr(m);
Form1.Label26.Caption := currToStr(X5);
Form1.Label27.Caption := currToStr(Y5);
end;

end.
Соседние файлы в папке Лабораторная работа №1