Sabtu, 11 Desember 2010

Program Menghitung Matriks dengan C++

#include
#include
#include
#include
#include

class matriks
{
   private:
      int jumbar;
      int jumkol;
      int mat[10][10];
   public:
      matriks();
      void isi_matriks();
      void cetak_matriks();
      matriks jumlah(matriks T);
      matriks kali(matriks K);
      matriks kali(int bil);
      ~matriks();
};

void main()
{
   clrscr();
   matriks mat_A;
   matriks mat_B;
   matriks mat_tambah;
   matriks mat_kali;
   int bil;
   cout<<"----------------------------------------------------"<
   cout<<"Matriks A : "<
   cout<<"Matriks B : "<
   cout<
   cout<<"----------------------------------------------------"<
   cout<<"Mencetak matrik :"<
   cout<<"Matriks A = ";mat_A.cetak_matriks();
   cout<<"Matriks B = ";mat_B.cetak_matriks();
   cout<<"----------------------------------------------------"<
   mat_tambah=mat_A.jumlah(mat_B);
   cout<<"Matriks A + Matriks B = ";mat_tambah.cetak_matriks();
   cout<<"----------------------------------------------------"<
   mat_kali=mat_A.kali(mat_B);
   cout<<"Matriks A x Matriks B = ";mat_kali.cetak_matriks();
   cout<<"----------------------------------------------------"<
   cout<<"Untuk mengalikan matriks dengan bilangan bulat"<
   cout<<"Masukkan bilangan bulat = ";cin>>bil;
   cout<<"----------------------------------------------------"<
   mat_kali=mat_A.kali(bil);
   cout<<<" x Matriks A = ";mat_kali.cetak_matriks();
   cout<<"----------------------------------------------------"<
   getch();
}
matriks::matriks()
{
   jumbar=0;
   jumkol=0;
   int i,j;
   for(i=0;i<10;i++)
   {
      for(j=0;j<10;j++)
     mat[i][j]=0;
   }
}

void matriks::isi_matriks()
{
   int i,j;
   do
   {
      cout<<"Masukkan jumlah baris : ";
      cin>>jumbar;
   }
   while(jumbar>10);
   do
   {
      cout<<"Masukkan jumlah kolom : ";
      cin>>jumkol;
   }
   while(jumkol>10);
   cout <<"Masukkan Nilai Matriks : "<
   for(i=0;i
   {
      for(j=0;j
      {
      cout <<" Elemen ["<<<","<<<"] = ";
      cin>>mat[i][j];
      }
   }
}

void matriks::cetak_matriks()
{
   int i,j,x,y;
   x=wherex()+5;
   y=wherey();
   for(i=0;i
   {
      for(j=0;j
      {
     gotoxy(x+3*(j-1),y+2*i);
     cout<
      }
   }
   cout<<
}

matriks matriks::jumlah(matriks T)
{
   int i,j;
   matriks hasil;
   if((jumbar!=T.jumbar)||(jumkol!=T.jumkol))
   {
      cout<<"Jumlah ordo matriks A dan matriks B tidak sama"<
   }
   else
   {
      hasil.jumbar=jumbar;
      hasil.jumkol=jumkol;
      for(i=0;i
      {
     for(j=0;j
        hasil.mat[i][j]=mat[i][j]+T.mat[i][j];
      }
   }
   return(hasil);
}
matriks matriks::kali(matriks K)
{
   int i,j,k;
   matriks hasil;
   hasil.jumbar=jumbar;
   hasil.jumkol=jumkol;
   if(jumbar!=K.jumkol)
   {
      cout<<"Jumlah ordo matriks A dan matriks B tidak sama"<
   }
   else
   {
      for(i=0;i
     for(j=0;j
     {
        hasil.mat[i][j]=0;
        for(k=0;k
           hasil.mat[i][j]+=mat[i][k]*K.mat[k][j];
     }
   }
   return(hasil);
}
matriks matriks::kali(int bil)
{
   int i,j;
   matriks hasil;
   hasil.jumbar=jumbar;
   hasil.jumkol=jumkol;
   for(i=0;i
   {
      for(j=0;j
      hasil.mat[i][j]=bil*mat[i][j];
   }
   return(hasil);
}
matriks::~matriks()
{
   getch();
}
Selengkapnya >>