11/16/2016

Gauss Seidel Menggunakan ListBox



Persamaan sudah harus diketahui terlebih dahulu
 
procedure TForm1.Button1Click(Sender: TObject);
var
  xo,yo,zo,x,y,z,e,gx,gy,gz:Real;
  i,j,k,n:Integer;
begin
  xo:=StrToFloat(Edit1.Text);
  yo:=StrToFloat(Edit2.Text);
  zo:=StrToFloat(Edit3.Text);
  e:=StrToFloat(Edit4.Text);
  n:=StrToInt(Edit5.Text);
  i:=0;
  j:=0;
  k:=0;

  repeat
    i:=i+1;
    j:=j+1;
    k:=k+1;
    x:=((-1*2)+yo-zo)/3;
    y:=(4+zo-x)/4;
    z:=(10-x-y)/3;
    gx:=Abs((x-xo)/x);
    Listbox1.Items.Add(IntToStr(i));
    Listbox2.Items.Add(FloatToStr(x));
    Listbox3.Items.Add(FloatToStr(gx));
    Edit6.Text:=FloatToStr(x);
      if gx>e then
        begin
          xo:=x;
          yo:=y;
          zo:=z;
        end;
  until (gx<e) or (i=n);

  xo:=StrToFloat(Edit1.Text);
  yo:=StrToFloat(Edit2.Text);
  zo:=StrToFloat(Edit3.Text);
  e:=StrToFloat(Edit4.Text);
  n:=StrToInt(Edit5.Text);
  i:=0;
  j:=0;
  k:=0;

  repeat
    i:=i+1;
    j:=j+1;
    k:=k+1;
    x:=((-1*2)+yo-zo)/3;
    y:=(4-x+zo)/4;
    z:=(10-x-y)/3;
    gy:=Abs((y-yo)/y);
    Listbox4.Items.Add(IntToStr(j));
    Listbox5.Items.Add(FloatToStr(y));
    Listbox6.Items.Add(FloatToStr(gy));
      if gy>e then
        begin
          xo:=x;
          yo:=y;
          zo:=z;
        end;
  Edit7.Text:=FloatToStr(y);
  until (gy<e) or (j=n);

  xo:=StrToFloat(Edit1.Text);
  yo:=StrToFloat(Edit2.Text);
  zo:=StrToFloat(Edit3.Text);
  e:=StrToFloat(Edit4.Text);
  n:=StrToInt(Edit5.Text);
  i:=0;
  j:=0;
  k:=0;

  repeat
    i:=i+1;
    j:=j+1;
    k:=k+1;
    x:=((-1*2)+yo-zo)/3;
    y:=(4-x+zo)/4;
    z:=(10-x-y)/3;
    gz:=Abs((z-zo)/z);
    Listbox7.Items.Add(IntToStr(k));
    Listbox8.Items.Add(FloatToStr(z));
    Listbox9.Items.Add(FloatToStr(gz));
      if gz>e then
        begin
          xo:=x;
          yo:=y;
          zo:=z;
        end;
  Edit8.Text:=FloatToStr(z);
  until (gz<e) or (k=n);
end;

No comments:

Post a Comment