Membuat Operasi matrik di C++

Hay sobat programmer gimana kabar'a..
Sebenarnya ini merupakan tugas akhir perkuliahan mimin nie,,
ya tugas akhir mata kuliah aljabar linier yang isinya hanya matrik,,matrik,, dan matrik dan akhirnya dosen memberi tugas akhir'a juga ga' jauh-jauh beda dengan materi yang disampaikannya...
Ya,, operasi matrik,, dari penjumlahan, pengurangan sampai perkalian matrik dengan ordo bebas (bisa dua atau lebih dari 3)...
setelah berpusing-pusing membuat logika'a dan akhirnya mimin berhasil membuat program matrik..
untuk sort code'a langsung sedot aja nie gan..

#include <iostream.h>
#include <conio.h>
main()
{
    char salah;
    double a[10][10];
    double b[10][10];
    double hasil[10][10];
    int i,j,r,bb,k,p;
    do{
//    clrscr();
    cout<<"==========================\n";
    cout<<"inputkan banyak baris: ";cin>>bb;
    cout<<"inputkan banyak kolom: ";cin>>k;
    cout<<"==========================\n";
    if (bb==k)
    {
     cout<<"INPUT ELEMEN  MATRIK A: "<<endl;
     for (i=0;i<bb;i++)
     for (j=0;j<k;j++)
     {
        cout<<"A["<<(i+1)<<","<<(j+1)<<"]=";cin>>a[i][j];
     }
     cout<<"INPUT ELEMEN  MATRIK B: "<<endl;
     for (i=0;i<bb;i++)
     for (j=0;j<k;j++)
     {
        cout<<"B["<<(i+1)<<","<<(j+1)<<"]=";cin>>b[i][j];
     }
        cout<<"--------------------------------------------\n";
     cout<<"pilih (1=jumlah,2=kurang,3=perkalian) : ";cin>>p;
        cout<<"--------------------------------------------\n";
     if(p==1)
     {
            cout<<"TAMPIL MATRIK : "<<endl;
            cout<<"Matriks A               Matriks B"<<endl;
            for (i=0;i<bb;i++)
            {
                for (j=0;j<k;j++)
                {
                    cout<<a[i][j]<<"    ";
                }
                if (i==0)
                {
                         cout<<"+";
                         cout<<"    ";
                         for (j=0;j<k;j++)
                         {
                             cout<<b[i][j]<<"    ";
                         }
                }
                if (i>0)
                {
                    cout<<"    ";
                    for (j=0;j<k;j++)
                    cout<<" "<<b[i][j]<<"   ";
                }
                cout<<endl;
            }
            for (i=0;i<bb;i++)
            for (j=0;j<k;j++)
            {
                hasil[i+1][j+1]=(a[i][j]+b[i][j]);
            }
            cout<<endl<<"HASIL AKHIR= "<<endl;
            for (i=0;i<bb;i++)
            {
                for (j=0;j<k;j++)
                {
                    cout<<hasil[i+1][j+1]<<"     ";
                }
                cout<<endl;
            }
     }
     else if(p==2)
     {
         cout<<"TAMPIL MATRIK : "<<endl;
         cout<<"Matriks A               Matriks B"<<endl;
         for (i=0;i<bb;i++)
            {
                for (j=0;j<k;j++)
                {
                    cout<<a[i][j]<<"    ";
                }
            if (i==0)
            {
                     cout<<"-";
                     cout<<"    ";
                     for (j=0;j<k;j++)
                     {
                         cout<<b[i][j]<<"    ";
                     }
            }
            if (i>0)
            {
                    cout<<"    ";
                    for (j=0;j<k;j++)
                    cout<<" "<<b[i][j]<<"   ";
            }
            cout<<endl;
            }
         for (i=0;i<bb;i++)
         for (j=0;j<k;j++)
         {
             hasil[i+1][j+1]=(a[i][j]-b[i][j]);
         }
         cout<<endl<<"HASIL AKHIR= "<<endl;
         for (i=0;i<bb;i++)
         {
             for (j=0;j<k;j++)
             {
                 cout<<hasil[i+1][j+1]<<"     ";
             }
             cout<<endl;
         }
     }
     else if(p==3)
     {
         cout<<"TAMPIL MATRIK : "<<endl;
         cout<<"Matriks A               Matriks B"<<endl;
         for (i=0;i<bb;i++)
            {
                for (j=0;j<k;j++)
                {
                    cout<<a[i][j]<<"    ";
                }
            if (i==0)
            {
                     cout<<"x";
                     cout<<"    ";
                     for (j=0;j<k;j++)
                     {
                         cout<<b[i][j]<<"    ";
                     }
            }
            if (i>0)
            {
                    cout<<"    ";
                    for (j=0;j<k;j++)
                    cout<<" "<<b[i][j]<<"   ";
            }
            cout<<endl;
            }
         hasil[i+1][j+1]=0;
         for (i=0;i<bb;i++)
         {
             for (j=0;j<k;j++)
             {
hasil[i+1][j+1]=0;
for (r=0;r<k;r++)
                 {
                     hasil[i+1][j+1]=hasil[i+1][j+1]+a[i][r]*b[r][j];
                 }
             }
         }
         cout<<endl<<"HASIL AKHIR= "<<endl;
         for (i=0;i<bb;i++)
         {
             for (j=0;j<k;j++)
             {
                 cout<<hasil[i+1][j+1]<<"     ";
             }
             cout<<endl;
         }
     }
     else
     {
     cout<<"-->kode yang anda masukkan salah<--"<<endl;
     cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
     cin>>salah;
     cout<<"-----TEKAN ENTER-----"<<endl;
     }
    }    //tutup kurung dari if (bb=k)
    else
    {
     cout<<"Maaf....ORDO tidak sama!!!!"<<endl;
     cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
     cin>>salah;
     cout<<"-----TEKAN ENTER-----"<<endl;
    } 
    cout<<"APAKAH ANDA INGIN MENGULANG?(Y/T) ";
    cin>>salah;
    cout<<"-----TEKAN ENTER-----"<<endl;
    }   //tutup kurung dari do-while
    while(salah=='y'||salah=='Y');
    getch();
}

monggoh dicoba...

3 comments: