Jumat, 29 Juni 2012

Program Perkalian Matriks

Program perkalian matriks dengan orde 3x3 ke atas.

program matrik;
uses crt;
const
     orde = 10;
type
    matrix = array[1..orde,1..orde] of integer;
var
    M1,M2 : matrix;
    m,n,pil : integer;
procedure isimatrik;
var  i,j : integer;
begin
     writeln('Penentuan Tipe  MATRIKS A');
     writeln('=============================================================');
     writeln;
     write('Masukan banyak baris matriks A = '); readln(m);
     write('Masukan banyak kolom matriks A = '); readln(n);
     for i:=1 to m do
         for j:=1 to n do
             begin
             write('Matriks A[',i,',',j,']: ');
             readln(M1[i,j]);
             end;

     writeln('Penentuan Tipe MATRIKS B');
     writeln('=============================================================');
     writeln;
     write('Masukan banyak baris matriks B = '); readln(m);
     write('Masukan banyak kolom matriks B = '); readln(n);
     for i:=1 to m do
         for j:=1 to n do
             begin
             write('Matriks B[',i,',',j,']: '); readln(M2[i,j]);
             end;
end;
procedure kalimatrik(M1,M2 : matrix);
var hasil : matrix;
    i,j,z   : integer;
    begin
     for i:=1 to m do
         for j:=1 to n do
             begin
                  hasil[i,j]:=0;
                  for z:=1 to m do
                  hasil[i,j]:=hasil[i,j]+M1[i,z]*M2[z,j];
             end;


     writeln;
     writeln;
     writeln('Hasil perkalian Matriks A dan Matriks B: ');
     writeln;
     writeln('Matriks A');
     writeln('------------->>');
     for i:= 1 to m do
        begin
           for j:=1 to n do
            write(M1[i,j],'   ');
            writeln;
            writeln;
        end;


     writeln;
     writeln('Matriks B');
     writeln('------------->>');
     for i:=1 to m do
        begin
           for j:= 1 to n do
            write(M2[i,j],'   ');
            writeln;
            writeln;
        end;


     writeln;
     writeln('Hasil perkalian MATRIX');
     writeln;
     for i:=1 to m do
         begin
         for j:=1 to n do

             write(hasil[i,j],'    ');
             writeln;
             writeln;
             writeln;
             end;
             writeln;
end;

begin
     Clrscr;
     isimatrik;
     kalimatrik(M1,M2);
     readln;
end.









0 komentar:

Posting Komentar