- Back to Home »
- PASCAL »
- program matriks di pascal
Posted by : Unknown
Jumat, 22 November 2013
program operasi_matriks;
uses
wincrt;
type
matrix=array[1..20,1..20] of integer;
var
A,B,hasil:matrix;
v,w,u,ba,ka,bb,kb:integer;
pil:1..9;
procedure
isi(var X:matrix;p,q:byte);
begin
for v:=1 to p do
begin
for w:=1 to q do
begin
writeln('isi elemen ke [',v,',',w,'] ');
readln(X[v,w]);
end;
end;
end;
procedure
tampil(var X:matrix;p,q:byte);
begin
for v:=1 to p do
begin
for w:=1 to q do write(X[v,w]:6);
writeln;
end;
end;
procedure
kali(var X,Y:matrix;p,q:integer);
begin
for v:=1 to p do
for w:=1 to q do
begin
hasil[v,w]:=0;
for u:=1 to p do
begin
hasil[v,w]:=hasil[v,w]+X[v,u]*Y[u,w];
end;
end;
end;
procedure jumlah(var
X,Y:matrix;p,q:byte);
begin
for v:=1 to p do
begin
for w:=1 to q do
hasil[v,w]:=X[v,w]+Y[v,w];
end;
end;
procedure
kurang(var X,Y:matrix;p,q:byte);
begin
for v:=1 to p do
begin
for w:=1 to q do
hasil[v,w]:=X[v,w]-Y[v,w];
end;
end;
procedure
transpos(var X:matrix;p,q:byte);
begin
for v:=1 to p do
begin
for w:=1 to q do write(X[w,v]:6);
writeln;
end;
end;
{program utama}
begin
repeat
begin
clrscr;
writeln('MENU
PILIHAN OPERASI MATRIX');
writeln('-------------------------');
writeln('1. Isi
matrix A');
writeln('2. Isi
matrix B');
writeln('3.
A+B');
writeln('4.
A-B');
writeln('5.
B-A');
writeln('6.
A*B');
writeln('7. A
transpose');
writeln('8. B
transpose');
writeln('9.
selesai');
write('masukkan
pilihan anda <1-8> ==> ');readln(pil);
case pil of
1: begin
writeln('mengisi matrix A');
write('masukkan baris A ==> ');readln(ba);
write('masukan kolom matrix A ==>
');readln(ka);
isi(A,ba,ka);
writeln('Matrix a adalah ');
tampil(A,ba,ka);
end;
2:begin
writeln('mengisi matrix B');
write('masukkan baris B ==> ');readln(bb);
write('masukan kolom matrix B ==>
');readln(kb);
isi(B,bb,kb);
writeln('Matrix B adalah ');
tampil(B,bb,kb);
end;
3: begin
if (ba=bb) and (ka=kb) then
begin
writeln('matrix A = ');
tampil (A,ba,ka);
writeln('matrix B = ');
tampil (B,bb,kb);
writeln('hasil A+B adalah ');
jumlah(A,B,ba,ka);
tampil(hasil,ba,ka);
end
else writeln('operasi A+B tidak bisa
dihitung karena ordo berbeda');
end;
4: begin
if (ba=bb) and (ka=kb) then
begin
writeln('matrix A = ');
tampil (A,ba,ka);
writeln('matrix B = ');
tampil (B,bb,kb);
writeln('hasil A-B adalah ');
kurang(A,B,ba,ka);
tampil(hasil,ba,ka);
end
else writeln('operasi A-B tidak bisa
dihitung karena ordo berbeda');
end;
5: begin
if (ba=bb) and (ka=kb) then
begin
writeln('matrix A = ');
tampil (A,ba,ka);
writeln('matrix B = ');
tampil (B,bb,kb);
writeln('hasil B-A adalah ');
kurang(B,A,ba,ka);
tampil(hasil,ba,ka);
end
else writeln('operasi B-A tidak bisa
dihitung karena ordo berbeda');
end;
6: begin
writeln('matrix A = ');
tampil (A,ba,ka);
writeln('matrix B = ');
tampil (B,bb,kb);
writeln('hasil B*A adalah ');
kali(A,B,ba,ka);
tampil(hasil,ba,ka);
end;
7: begin
writeln('Matrix A');
tampil(A,ba,ka);
writeln('Transpose Matrix A');
transpos(A,ka,ba);
end;
8: begin
writeln('Matrix B');
tampil(B,bb,kb);
writeln('Transpose Matrix B');
transpos(B,kb,bb);
end;
9:writeln('terima
kasih sudah berpartisipasi');
end;
readln;
end
until(pil=9);
end.