矩陣(一)
4、矩陣(一)
編寫C++程序完成以下功能:
(1) 假定矩陣大小為4×5(整型數組表示);
(2) 定義矩陣初始化函數,可以從cin中輸入矩陣元素;
(3) 定義矩陣輸出函數,將矩陣格式化輸出到cout;
(4) 定義矩陣相加的函數,實現兩個矩陣相加的功能,結果保存在另一個矩陣中;
(5) 定義矩陣相減的函數,實現兩個矩陣相減的功能,結果保存在另一個矩陣中;
(6) 定義三個矩陣:A1、A2、A3;
(7) 初始化A1、A2;
(8) 計算並輸出:A3 = A1加A2,A3 = A1減A2。
#include<iostream>
using namespace std;
class Matrix
{
private:
int X[4][5];
public:
void SetMatrix(int xx[4][5]=0);
void SetArray(int xx[4][5]);
void putoutMatrix();
friend Matrix matrixplus(Matrix& a,Matrix& b);
friend Matrix matrixsub(Matrix& a,Matrix& b);
};
void Matrix::SetMatrix(int xx[4][5])
{
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
X[i][j]=xx[i][j];
}
}
}
void Matrix::SetArray(int xx[4][5])
{
int i,j;
cout<<"請輸入一個4*5矩陣:"<<endl;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
cin>>xx[i][j];
}
getchar();
}
}
void Matrix::putoutMatrix()
{
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
cout<<X[i][j]<<" ";
}
cout<<endl;
}
}
Matrix matrixplus(Matrix& a,Matrix& b)
{
Matrix c;
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
c.X[i][j]=a.X[i][j]+b.X[i][j];
}
}
return c;
}
Matrix matrixsub(Matrix& a,Matrix& b)
{
Matrix c;
int i,j;
for(i=0;i<=3;i++)
{
for(j=0;j<=4;j++)
{
c.X[i][j]=a.X[i][j]-b.X[i][j];
}
}
return c;
}
int main()
{
Matrix A1,A2,A3,A4;
int xx1[4][5]={0},xx2[4][5]={0};
char z1,z2;
cout<<"採用默認值(y)/手動初始化矩陣A1(n)"<<endl;
cin>>z1;
if(z1!="y")
{
A1.SetArray(xx1);
}
A1.SetMatrix(xx1);
cout<<"採用默認值(y)/手動初始化矩陣A2(n)"<<endl;
cin>>z2;
if(z2!="y")
{
A2.SetArray(xx2);
}
A2.SetMatrix(xx2);
cout<<endl<<"矩陣A1為:"<<endl;
A1.putoutMatrix();
cout<<endl<<"矩陣A2為:"<<endl;
A2.putoutMatrix();
A3=matrixplus(A1,A2);
A4=matrixsub(A1,A2);
cout<<endl<<"A1+A2="<<endl;
A3.putoutMatrix();
cout<<endl<<"A1-A2="<<endl;
A4.putoutMatrix();
system("pause");
return 0;
}
推薦閱讀:
※矩陣
※矩陣和向量求導
※吉薩太空矩陣——關於吉薩的最近消息
※矩陣類的模板實現(C++)
※語料庫語言學基礎知識:矩陣(Haskell版)
TAG:矩陣 |