Tuesday, 2 May 2017

TUGAS MATEMATIKA DISKRIT Membuat Operasi Matriks

Membuat Operasi Matriks

Konsep : Array dan StringGrid

Membuat array satu dimensi
x:array[1..n] of tipedata
keterangan : array yang terdiri dari 1 baris n kolom
contoh :
x:array[1..6] of integer
1
2
3
4
5
6
Y:array[0..5] of integer
0
1
2
3
4
5


Membuat array dua dimensi
Syntax : x:array[1..n,1..m] of tipedata
Keterangan : array yang terdiri dari n baris m kolom
Contoh :
X:array[1..4,1..4] of integer
1,1
1,2
1,3
1,4
2,1
2,2
2,3
2,4
3,1
3,2
3,3
3,4
4,1
4,2
4,3
4,4

Y: array[0..3,1..5] of integer
0,1
0,2
0,3
0,4
0,5
1,1
1,2
1,3
1,4
1,5
2,1
2,2
2,3
2,4
2,5
3,1
3,2
3,3
3,4
3,5
STRINGGRID

Stringgrid1.cells[kolom,baris];

0,0
0,1
0,2
0,3
1,0
1,1
1,2
1,3
2,0
2,1
2,2
2,3
3,0
3,1
3,2
3,3

Stringgrid1.cells[2,3];




unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Grids, StdCtrls, XPMan;

type
 TForm1 = class(TForm)
   GroupBox1: TGroupBox;
   Edit1: TEdit;
   Edit2: TEdit;
   Edit3: TEdit;
   Edit4: TEdit;
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Label4: TLabel;
   Button1: TButton;
   Button2: TButton;
   StringGrid1: TStringGrid;
   StringGrid2: TStringGrid;
   GroupBox2: TGroupBox;
   Button3: TButton;
   Button4: TButton;
   StringGrid3: TStringGrid;
   Label5: TLabel;
   Button5: TButton;
   Button6: TButton;
   Button7: TButton;
   Button8: TButton;
   Label6: TLabel;
   Label7: TLabel;
   Label8: TLabel;
   XPManifest1: TXPManifest;
   procedure Button1Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button8Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a, b : integer;
begin
label8.Visible:=false;
if (strtoint(edit1.Text)>100) or (strtoint(edit2.Text)>100) or (strtoint(edit3.Text)>100) or (strtoint(edit4.Text)>100) then
begin
ShowMessage('Jumlah Baris atau Kolom melebihi dari batas program');
edit1.SetFocus;
end;
if (strtoint(edit1.Text)<=100) and (strtoint(edit2.Text)<=100) and (strtoint(edit3.Text)<=100) and (strtoint(edit4.Text)<=100) then
begin
stringgrid1.RowCount:=strtoint(edit1.Text)+1;
stringgrid1.ColCount:=strtoint(edit2.Text)+1;
stringgrid2.RowCount:=strtoint(edit3.Text)+1;
stringgrid2.ColCount:=strtoint(edit4.Text)+1;
stringgrid1.Width:=31*(strtoint(edit2.Text)+1);
stringgrid1.Height:=31*(strtoint(edit1.Text)+1);
stringgrid2.Width:=31*(strtoint(edit4.Text)+1);
stringgrid2.Height:=31*(strtoint(edit3.Text)+1);
stringgrid2.Left:=60+31*(strtoint(edit2.Text)+1);
stringgrid1.Visible:=true;
stringgrid2.Visible:=true;
stringgrid3.Visible:=false;
label6.Visible:=true;
label7.Visible:=true;
label6.Left:=24;
label7.Left:=60+31*(strtoint(edit2.Text)+1);
for a:=1 to 100 do
 for b:=1 to 100 do
 begin
 stringgrid1.Cells[a,b]:='0';
 stringgrid2.Cells[a,b]:='0';
 end
end
end;

procedure TForm1.Button3Click(Sender: TObject);
var
i, j : integer;
matriks_a : array[1..100,1..100] of integer;
matriks_b : array[1..100,1..100] of integer;
hasil : array[1..100,1..100] of integer;
begin
if (Edit1.Text<>Edit3.Text) or (Edit2.Text<>Edit4.Text) then
begin
 ShowMessage('Jumlah Baris kedua Matriks harus sama dan Jumah Kolom kedua matriks harus sama');
 edit1.SetFocus;
end;
if (Edit1.Text=Edit3.Text) and (Edit2.Text=Edit4.Text) then
 begin
   Stringgrid3.Visible:=true;
   stringgrid3.RowCount:=strtoint(edit1.Text)+1;
   stringgrid3.ColCount:=strtoint(edit2.Text)+1;
   stringgrid3.Width:=31*(strtoint(edit2.Text)+1);
   stringgrid3.Height:=31*(strtoint(edit1.Text)+1);
   stringgrid3.Left:=96+2*31*(strtoint(edit2.Text)+1);
   label8.Visible:=true;
   label8.Left:=96+2*31*(strtoint(edit2.Text)+1);
   label8.Caption:='Matriks A + Matriks B';
   for i:=1 to strtoint(edit1.Text) do
   begin
     StringGrid1.Cells[0,i]:='B'+inttostr(i);
     StringGrid2.Cells[0,i]:='B'+inttostr(i);
     StringGrid3.Cells[0,i]:='B'+inttostr(i);
   for j:=1 to strtoint(edit2.Text) do
   begin
     StringGrid1.Cells[j,0]:='K'+inttostr(j);
     StringGrid2.Cells[j,0]:='K'+inttostr(j);
     StringGrid3.Cells[j,0]:='K'+inttostr(j);
     matriks_a[i,j]:=strtoint(stringgrid1.Cells[j,i]);
     matriks_b[i,j]:=strtoint(stringgrid2.Cells[j,i]);
     hasil[i,j]:=matriks_a[i,j]+matriks_b[i,j];
     Stringgrid3.Cells[j,i]:=inttostr(hasil[i,j]);
   end;
   end;
 end

end;

procedure TForm1.FormCreate(Sender: TObject);
var a, b : integer;
begin
edit1.Text:='1';
edit2.Text:='1';
edit3.Text:='1';
edit4.Text:='1';
label6.Visible:=false;
label7.Visible:=false;
label8.Visible:=false;
stringgrid1.Visible:=false;
stringgrid2.Visible:=false;
for a:=1 to 100 do
 for b:=1 to 100 do
 begin
 stringgrid1.Cells[a,b]:='0';
 stringgrid2.Cells[a,b]:='0';
 end
end;

procedure TForm1.Button2Click(Sender: TObject);
var a, b : integer;
begin
stringgrid1.Visible:=false;
stringgrid2.Visible:=false;
stringgrid3.Visible:=false;
edit1.SetFocus;
Edit1.Text:='1';
Edit2.Text:='1';
Edit3.Text:='1';
Edit4.Text:='1';
label6.Visible:=false;
label7.Visible:=false;
label8.Visible:=false;
for a:=1 to 100 do
 for b:=1 to 100 do
 begin
 stringgrid1.Cells[a,b]:='0';
 stringgrid2.Cells[a,b]:='0';
 end
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
close;
end;

end.

No comments:

Post a Comment