Selasa, 07 Juni 2011

Contoh program perkalian matriks c ++



1.      Contoh program perkalian matriks c ++

Banyak program perkalian C++ yang diposting hanya bisa mengalikan dua buah matriks matriks 2x2 atau matriks 3x3 saja. Lain daripada yang lain, program matriks yang saya buat ini bisa menghitung perkalian matriks berapapun asal tidak lebih dari ordo 5x5.
Sebenarnya mudah saja membuatnya sampai perkalian matriks berordo 100x100, tapi akan sangat sulit menampilkan outputnya.

Baiklah, agar mempersingkat waktu, langsung saja saya berikan syntax perkalian matriks C++ ini. Selamat menikmati.


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

 #define ValueMax 25


 typedef float matriks[ValueMax][ValueMax];

 void main()
 {

 int colA,colB,rowA,rowB,i,j;
 matriks A,B,C;
 int answer;

 do
 {
  clrscr();
  cout<<"\aAnda Memilih Menu Perkalian Matriks\n\n\n";
  cout<<"MATRIKS A : "<<endl<<endl;
  cout<<"Masukkan Jumlah Baris Matriks A : ";
  cin>>rowA;
  cout<<"Masukkan Jumlah Kolom Matriks A : ";
  cin>>colA;
  cout<<endl<<endl;
  cout<<"MATRIKS B : "<<endl<<endl;
  cout<<"Masukkan Jumlah Baris Matriks B : ";
  cin>>rowB;
  cout<<"Masukkan Jumlah Kolom Matriks B : ";
  cin>>colB;
 }
 while (colA!=rowB);

 clrscr();
 cout<<"Masukkan Nilai Matriks A : "<<endl;
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colA;j++)
  {
   cout<<"A["<<i<<","<<j<<"] = ";
   cin>>A[i][j];
  }
 }

 cout<<endl<<endl;
 cout<<"Masukkan Nilai Matriks B : "<<endl;
 for(i=1;i<=rowB;i++)
 {
  for(j=1;j<=colB;j++)
  {
   cout<<"B["<<i<<","<<j<<"] = ";
   cin>>B[i][j];
  }
 }

 clrscr();
 cout<<endl;
 //Proses Perkalian Matriks
 if(colA == 1)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1] * B[1][j]);
  }
 }
 }

 if(colA == 2)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1] * B[1][j] + A[i][2] * B[2][j]);
  }
 }
 }

 if(colA == 3)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1] * B[1][j] + A[i][2] * B[2][j] + A[i][3] * B[3][j]);
  }
 }
 }

 if(colA == 4)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1]*B[1][j] + A[i][2]*B[2][j] + A[i][3]*B[3][j] + A[i][4]*B[4][j]);
  }
 }
 }

 if(colA == 5)
 {
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
    C[i][j] = (A[i][1]*B[1][j] + A[i][2]*B[2][j] + A[i][3]*B[3][j] + A[i][4]*B[4][j] + A[i][5]*B[5][j]);
  }
 }
 }

 clrscr();
 //Output Matriks A
 gotoxy(1,5);
 cout<<"A = ";
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colA;j++)
  {
   gotoxy(2+4*j,2+2*i);
   cout<<A[i][j];
  }
 }

 //Output Matriks B
 gotoxy(1,17);
 cout<<"B = ";
 for(i=1;i<=rowB;i++)
 {
  for(j=1;j<=colB;j++)
  {
   gotoxy(2+4*j,14+2*i);
   cout<<B[i][j];
  }
 }

 //Output Matriks C
 gotoxy(1,30);
 cout<<"C = ";
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colA;j++)
  {
   gotoxy(3+4*j,27+2*i);
   cout<<A[i][j];
  }
 }

 gotoxy(25,30);
 cout<<" X ";
 for(i=1;i<=rowB;i++)
 {
  for(j=1;j<=colB;j++)
  {
   gotoxy(26+4*j,27+2*i);
   cout<<B[i][j];
  }
 }

 gotoxy(43,30);
 cout<<" = ";
 for(i=1;i<=rowA;i++)
 {
  for(j=1;j<=colB;j++)
  {
   gotoxy(45+4*j,27+2*i);
   cout<<C[i][j];
  }
 }

 getch();
}

Tidak ada komentar:

Posting Komentar