Code C-C++: Phép toán cộng, nhân hai ma trận

Người đăng: culaoxanh88 on Thứ Tư, 19 tháng 2, 2014

#include<conio.h>
#include<iostream.h>
#define max 100
/*Nhap ma tran*/
void NhapMaTran(float A[max][max], int m, int n){
   for(int i = 0; i<m; i++)
   for(int j = 0; j<n; j++) {
      cout<<"a["<<i<<"]["<<j<<"] = ";
      cin>>A[i][j];
   }
}

/*Xuat ma tran*/
void XuatMaTran(float A[max][max], int m, int n) {
   for(int i=0 ; i<m; i++){
      cout<<endl;
      for(int j=0 ; j<n; j++)
         cout<<A[i][j]<<"\t";
   }
}
/*C = A+B*/
void CongMaTran(float A[max][max], float B[max][max], float C[max][max], int m, int n) {
   for(int i = 0; i<m; i++)
   for(int j = 0; j<n; j++)
      C[i][j] = A[i][j]+B[i][j];

}
/*A cap mxn * B cap nxp = C cap mXp*/
void NhanMaTran(float A[max][max], float B[max][max], float C[max][max], int m, int n, int p){
   for(int i = 0; i<m; i++)
      for(int k = 0; k<p; k++) {
         C[i][k]=0;
         for(int j = 0; j<n; j++)
            C[i][k] = C[i][k]+A[i][j]*B[j][k];
      }
}
/*Chuong trinh chinh*/
void main(){
   int m=3,n=2,p=3;
   float A[max][max],B[max][max],C[max][max],D[max][max];
   clrscr();
   cout<<"Nhap ma tran A cap "<<m<<"x"<<n<<endl;
   NhapMaTran(A,m,n);
   cout<<"Nhap ma tran B cap "<<m<<"x"<<n<<endl;
   NhapMaTran(B,m,n);
   cout<<"Nhap ma tran C cap "<<n<<"x"<<p<<endl;
   NhapMaTran(C,n,p);
   cout<<"Ma tran A\n";
   XuatMaTran(A,m,n);
   cout<<"\nMa tran B\n";
   XuatMaTran(B,m,n);
   cout<<"\nMa tran C\n";
   XuatMaTran(C,n,p);
   cout<<"\nMa tran D = A+B\n";
   CongMaTran(A,B,D,m,n);
   XuatMaTran(D,m,n);
   cout<<"\nMa tran D = A.C\n";
   NhanMaTran(A,C,D,m,n,p);
   XuatMaTran(D,n,p);
   getch();
}
Tag: Ma trận, mảng 2 chiều, mảng hai chiều, phép cộng, phép nhân, C, C++

{ 0 nhận xét... read them below or add one }

Đăng nhận xét