Sabtu, 19 November 2016

Program Delphi Mencari Akar Persamaan Tak Linier dengan Metode Bagi Dua

procedure TMetodeBagiDua.Panel1Click(Sender: TObject);
var
a,b,e,x,c,fa,fb,fc:real;
i:integer;
begin
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
fa:= (a*a*a*a)+(2*(a*a*a))-(a*a)+(2*a)-4;
fb:= (b*b*b*b)+(2*(b*b*b))-(b*b)+(2*b)-4;
if fa*fb>0 then showmessage('proses gagal, tebakan awal tidak cocok')
else
begin
    x:=strtofloat(edit3.text);
    i:=-1;
    repeat
    i:= i+1;
    c:=(a+b)/2;
    listbox1.Items.add(floattostr(i));
    listbox2.Items.add(floattostr(a));
    listbox3.Items.add(floattostr(b));
    listbox4.items.add(floattostr(c));
    fa:= (a*a*a*a)+(2*(a*a*a))-(a*a)+(2*a)-4;
    fb:= (b*b*b*b)+(2*(b*b*b))-(b*b)+(2*b)-4;
    fc:= (c*c*c*c)+(2*(c*c*c))-(c*c)+(2*c)-4;
    listbox5.Items.add(floattostr(fa));
    listbox6.Items.add(floattostr(fb));
    listbox7.Items.add(floattostr(fc));
    if fa*fc <= 0 then b:= c else a:=c;
    e:= abs ((b-a)/b);
     listbox8.items.add(floattostr(e));
    until e<= x;
    edit4.text:=floattostr(c);
  

    end;
    end;

procedure TMetodeBagiDua.Panel2Click(Sender: TObject);
begin
edit1.Text:=' ';
edit2.Text:=' ';
edit3.Text:=' ';
edit4.Text:=' ';
listbox1.items.Clear;
listbox2.items.Clear;
listbox3.items.Clear;
listbox4.items.Clear;
listbox5.items.Clear;
listbox6.items.Clear;
listbox7.items.Clear;
listbox8.items.Clear;
end;

procedure TMetodeBagiDua.Panel3Click(Sender: TObject);
begin
halt;
end;

end.

0 komentar:

Posting Komentar