Monday, October 1, 2012

Penjumlahan 2 buah matrik

#include <iostream.h>
#include <conio.h>

void baca_matriks(int mat[10][10], int, int);
void matrik_kali(const int[10][10],const int[10][10],int,int,int,int[10][10]);
void cetak_matriks(const int A[10][10], int, int);

int main() {
  int p,w,h,y;
  int matriks1[10][10], matriks2[10][10];
  int kali[10][10];
  cout<<" Banyak baris matriks ke-1 : "; cin>>p;
  cout<<" Banyak kolom matriks ke-1 : "; cin>>w;
  cout<<" Data matriks ke-1 \n";
  baca_matriks(matriks1, p, w);
  cetak_matriks(matriks1, p, w);
  cout<<" Data matriks ke-2 \n";
  cout<<" Banyak baris matriks ke-2 : "; cin>>h;
  cout<<" Banyak kolom matriks ke-2 : "; cin>>y;
  if (w!=h)
     cout<<"\n Kolom matriks ke-1 harus sama dengan baris matriks ke-2";
  else{
     baca_matriks(matriks2, h, y);
     cetak_matriks(matriks2, h, y);
     matrik_kali(matriks1, matriks2, p,y,w, kali);
     cout<<" Hasil perkalian 2 matriks : \n";
     cetak_matriks(kali, p, y);}

  return 0;
}

void baca_matriks(int mat[10][10],int baris,int kolom) {
    int i, j;
    for(i=0;i<baris;i++)
        for(j=0;j<kolom;j++){
            cout<<" data ["<<(i+1)<<","<<(j+1)<<"] : ";
            cin>>mat[i][j];
        }
}
void matrik_kali(const int matriks1[10][10],const int matriks2[10][10],
                      int baris,int kolom,int barkol, int kali[10][10]) {
    int i,j,x;
    for(i=0;i<baris;i++)
        for(j=0;j<kolom;j++){
          kali[i][j]=0;
          for(x=0;x<barkol;x++)
             kali[i][j]=kali[i][j]+ matriks1[i][x]* matriks2[x][j];}
}
void cetak_matriks(const int A[10][10],int baris,int kolom) {
    int i, j;
    for(i=0;i<baris;i++) {
        for(j=0;j<kolom;j++)
         cout<<"   "<< A[i][j];
    cout<< endl;
    }
}

No comments: