Kamis, 02 Mei 2013

Progam Matriks a x b dan b x c (Array 2 Dimensi ) pada Pascal


Salah satu struktur data larik yang juga banyak digunakan dalam berbagai aplikasi adalah matriks atau larik 2D (dua dimensi), satu untuk menunjukkan baris dan yang lainnya menunjukkan kolom. Susunan angka berikut menunjukkan matriks 4 x 5 (4 baris dan 5 kolom).
                                    10        12        17        9          16
                                    8          15        10        11        25
                                    13        8          34        23        7
                                    45        27        6          5          17
Untuk mengisi suatu matriks berdimensi 4x5 dilakukan baris demi  baris, mulai dari baris 1 dengan mengisi kolom 1 sampai dengan kolom 5, kemudian pindah ke baris 2 dan mengisi kolom 1 sampai dengan kolom 5
                           Secara umum array dua dimensi dideklarasikan dengan aturan:
                                    Type namaarray = array [I,J] of tipe – basis;
dimana I dan J menyatakan jangkauuan array, mulai dari indeks terkecil sampai terbesar. Sama dengan pada array satu dimensi, I dan J bertipe tertentu yang disebut tipe indeks (index type). Tipe indeks harus tipe yang mempunyai keterurutan (terdefinisi suksesor dan predesesornya), atau ordinal. I menyatakan jangkauan baris array dan J menyatakan jangkauan kolomnya .

Program ini merupakan program dengan type array 2 dimensi yang berfungsi untuk mengalikan 2  matrik dengan syarat kolom matiks pertama dengan baris matriks kedua harus bernilai sama. Pertama-tama progam ini akan memintakan inputan nilai a, b dan c. Nilai a untuk baris matriks A dan b adalah nilai kolom matriks pertama dan nilai baris matriks kedua dan c adalah nilai kolom matriks kedua. Selanjutnya kan dimintakan inputan matriks A dan B sesuai niali a,b dan c.
Setelah meinputkan data program akan memproses data tersebut dengan cara mengalikan matriks pertama dan matriks kedua. Output yang diharapkan adalah matriks baru dengan ukuran a x c. Tipe data yang digunakan adalah integer.

Source Code:
uses wincrt;

var
matrikA : array[1..10, 1..10] of integer;
matrikB : array[1..10, 1..10] of integer;
matrikC : array[1..10, 1..10] of integer;

a,b,c,i,j,k: integer;

begin
writeln('  >>>Program Perkalian Matrik axb dan bxc<<< ');
writeln;
writeln(' a :   b:   c:   ');
gotoxy(5,3);read(a);gotoxy(10,3);read(b);gotoxy(15,3);read(c);
writeln;

begin
writeln(' Matriks A :');
for i:= 1 to a do
for j:= 1 to b do
begin
gotoxy (j*4, i+6);
readln(matrikA[i,j]);
end;
end;

writeln;

begin
writeln(' Matriks B :');
for j:= 1 to b do
for k:= 1 to c do
begin
gotoxy (k*4, j+11);
readln(matrikB[j,k]);
end;
end;

writeln;

begin
for i:= 1 to a do
    begin
        for k:=1 to c do
        begin
        matrikC[i,k]:=0;
                for j:=1 to b do
                begin
            MatrikC[i,k]:=matrikC[i,k] + matrikA[i,j] * matrikB[j,k];
        end;
    end;
end;
end;

begin
writeln(' Hasil Perkalian Matrik A ',a,'x',b,' dan Matrik B ',b,'x',c,' adalah: ');
for i:=1 to a do
    begin
        for k:=1 to c do
        begin
  
        write(matrikC[i,k]:4);
    end;
    writeln;
end;
end;

readln;

end.



Tampilan Output :




1 komentar: