這是Herr Deng桑的教學blog,主要處理作業與班導事務,另外還有數位小品。
#include<iostream>#include<cstdlib>#include<cstring>using namespace std;#define row 4#define col 3class Matrix {public: double term[row][col]; Matrix() { memset(term, 0, sizeof(term)); } Matrix(double a[row][col]) { for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) term[i][j] = a[i][j]; } } double&operator()(int i, int j) { return term[i][j]; } void print() { cout << "--------------------\n"; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) { cout << term[i][j] << "\t"; } cout << endl; } } friend Matrix& operator+(Matrix A, Matrix B) { Matrix C; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) C.term[i][j] = A(i, j) + B(i, j); } return C;} friend Matrix& operator*(double r, Matrix A) { Matrix M; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) M.term[i][j] = r*A(i, j); } return M; }};int main(){ double a[4][3] = { {1,2,3},{4,5,6},{7,8,9},{10,11,12}}; double b[4][3] = { {0,2,3},{0,1,1},{0,1,2},{2,3,5}}; Matrix A(a), B(b); A.print(); B.print(); Matrix C = A + B; C.print(); Matrix M = 2.0*A; M.print(); system("Pause"); return 0;}
class Matrix {public: double term[row][col]; Matrix() { memset(term, 0, sizeof(term)); } Matrix(double a[row][col]) { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) term[i][j] = a[i][j]; } } double& operator()(int i, int j) { return term[i][j]; } void print() { cout << "----------------\n"; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { cout << term[i][j] << "\t"; } cout << endl; } } friend Matrix& operator+(Matrix A, Matrix B) { Matrix C; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) C.term[i][j] = A(i, j) + B(i, j); } return C; } friend Matrix& operator*(double r, Matrix A) { Matrix C; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) C.term[i][j] = r*A(i, j) ; } return C; }};
public: double term[row][col]; Matrix() { memset(term, 0, sizeof(term)); } Matrix(double a[row][col]) { for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) { term[i][j] = a[i][j]; } } } double& operator()(int i, int j) { return term[i][j]; } void print() { cout << "====================\n"; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) { cout << term[i][j] << "\t"; } cout << endl; }} friend Matrix&operator+(Matrix A, Matrix B) { Matrix C; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) C(i, j) = A(i, j) + B(i, j); } return C; } friend Matrix&operator*(double r, Matrix A) { Matrix C; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) C.term[i][j] = r*A(i,j); } return C; } };int main(){ double a[3][3] = { { 1,2,3 },{ 4,5,6 },{ 7,8,9 } }; double b[3][3] = { { 4,5,6 },{ 7,8,9 },{ 1,2,3 } }; Matrix A(a), B(b); A.print(); B.print(); Matrix C = A + B; C.print(); C = 3.0*A; C.print(); system("Pause"); return 0;}
#include#include#includeusing namespace std;#define row 3#define col 3class Matrix {public: double term[row][col]; Matrix() { memset(term, 0, sizeof(term)); } Matrix(double a[row][col]) { for (int i = 0;i < row; i++) { for (int j = 0;j < col; j++) term[i][j] = a[i][j]; } } double& operator()(int i, int j) { return term[i][j]; } void print() { for (int i = 0;i < row;i++) { for (int j = 0;j < col; j++) { cout << term[i][j] << "\t"; } cout << endl; } }};Matrix&operator+(Matrix A, Matrix B) { Matrix C; for (int i = 0;i < row; i++) { for (int j = 0;j < col; j++) C.term[i][j] = A(i, j)*2 + B(i, j)*2; } return C; }int main() { double a[3][3] = { {1,2,3},{4,5,6},{7,8,9} }; double b[3][3] = { {4,5,6 }, { 7,8,9 }, { 1,2,3 }}; Matrix A(a), B(b); A.print(); B.print(); Matrix C = A + B; C.print(); system("Pause"); return 0;};
#include <iostream>#include <cstdlib>#include <cstring>using namespace std;#define row 3#define col 3class Matrix{public: double term[row][col]; Matrix() { memset(term, 0, sizeof(term)); } Matrix(double a[row][col]) { for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) term[i][j] = a[i][j]; } } double& operator()(int i, int j) { return term[i][j]; } void print() { cout << "=================\n"; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) { cout << term[i][j] << "\t"; } cout << endl; } } void R(int q) { cout << "=================\n"; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) { cout << term[i][j] * q << "\t"; } cout << endl; } } friend Matrix&operator+(Matrix A, Matrix B) { Matrix C; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) C.term[i][j] = A(i, j) + B(i, j); } return C; } friend Matrix&operator*(Matrix A, Matrix B) { Matrix C; for (int i = 0;i < row;i++) { for (int j = 0;j < col;j++) { C(i, j) = 0; for (int k = 0;k < 3;k++) C(i, j) += A(i, k)*B(k, j); } } return C; } };int main() { double a[3][3] = { {1,2,3},{4,5,6},{7,8,9 }}; double b[3][3] = { {4,5,6 }, { 7,8,9 }, { 1,2,3 }}; Matrix A(a), B(b); A.print(); B.print(); Matrix C = A + B; C.print(); A.R(2); C = A*B; C.print(); system("Pause"); return 0;}
class Matrix {public:double term[row][col];Matrix() { memset(term, 0, sizeof(term)); }Matrix(double a[row][col]) {for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++)term[i][j] = a[i][j];}}double& operator()(int i, int j) {return term[i][j];}void print() {cout << "----------------\n";for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {cout << term[i][j] << "\t";}cout << endl;}}friend Matrix& operator+(Matrix A, Matrix B) {Matrix C;for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++)C.term[i][j] = A(i, j) + B(i, j);}return C;}friend Matrix& operator*(double r, Matrix A) {Matrix C;for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++)C.term[i][j] = r*A(i, j) ;}return C;}};
#include#includeusing namespace std;#define row 4#define col 3class Matrix {public:double term[row][col];Matrix() { memset(term, 0, sizeof(term)); }Matrix(double a[row][col]) {for (int i = 0;i < row;i++) {for (int j = 0;j < col;j++)term[i][j] = a[i][j];}}double&operator()(int i, int j) {return term[i][j];}void print() {cout << "--------------------\n";for (int i = 0;i < row;i++) {for (int j = 0;j < col;j++) {cout << term[i][j] << "\t";}cout << endl;}}friend Matrix& operator+(Matrix A, Matrix B) {Matrix C;for (int i = 0;i < row;i++) {for (int j = 0;j < col;j++)C.term[i][j] = A(i, j) + B(i, j);}return C;}friend Matrix& operator*(double r, Matrix A) {Matrix M;for (int i = 0;i < row;i++) {for (int j = 0;j < col;j++)M.term[i][j] = r*A(i, j);}return M;}};int main(){double a[4][3] = { {1,2,3},{4,5,6},{7,8,9},{10,11,12}};double b[4][3] = { {0,2,3},{0,1,1},{0,1,2},{2,3,5}};Matrix A(a), B(b);A.print();B.print();Matrix C = A + B;C.print();Matrix M = 2.0*A;M.print();system("Pause");return 0;}
#include#include#includeusing namespace std;#define row 4#define col 3class Matrix {public:double term[row][col];Matrix() { memset(term, 0, sizeof(term)); }Matrix(double a[row][col]) {for (int i = 0;i < row;i++) {for (int j = 0;j < col;j++)term[i][j] = a[i][j];}}double&operator()(int i, int j) {return term[i][j];}void print() {cout << "--------------------\n";for (int i = 0;i < row;i++) {for (int j = 0;j < col;j++) {cout << term[i][j] << "\t";}cout << endl;}}friend Matrix& operator+(Matrix A, Matrix B) {Matrix C;for (int i = 0;i < row;i++) {for (int j = 0;j < col;j++)C.term[i][j] = A(i, j) + B(i, j);}return C;}friend Matrix& operator*(double r, Matrix A) {Matrix M;for (int i = 0;i < row;i++) {for (int j = 0;j < col;j++)M.term[i][j] = r*A(i, j);}return M;}};int main(){double a[4][3] = { {1,2,3},{4,5,6},{7,8,9},{10,11,12}};double b[4][3] = { {0,2,3},{0,1,1},{0,1,2},{2,3,5}};Matrix A(a), B(b);A.print();B.print();Matrix C = A + B;C.print();Matrix M = 2.0*A;M.print();system("Pause");return 0;}
HTML 編輯器
#include<iostream>
回覆刪除#include<cstdlib>
#include<cstring>
using namespace std;
#define row 4
#define col 3
class Matrix {
public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
term[i][j] = a[i][j];
}
}
double&operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "--------------------\n";
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix M;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
M.term[i][j] = r*A(i, j);
}
return M;
}
};
int main()
{
double a[4][3] = { {1,2,3},{4,5,6},{7,8,9},{10,11,12}};
double b[4][3] = { {0,2,3},{0,1,1},{0,1,2},{2,3,5}};
Matrix A(a), B(b);
A.print();
B.print();
Matrix C = A + B;
C.print();
Matrix M = 2.0*A;
M.print();
system("Pause");
return 0;
}
class Matrix {
回覆刪除public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "----------------\n";
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = r*A(i, j) ;
}
return C;
}
};
public:
回覆刪除double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++) {
term[i][j] = a[i][j];
}
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "====================\n";
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix&operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
C(i, j) = A(i, j) + B(i, j);
}
return C;
}
friend Matrix&operator*(double r, Matrix A) {
Matrix C;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
C.term[i][j] = r*A(i,j);
}
return C;
}
};
int main()
{
double a[3][3] = { { 1,2,3 },{ 4,5,6 },{ 7,8,9 } };
double b[3][3] = { { 4,5,6 },{ 7,8,9 },{ 1,2,3 } };
Matrix A(a), B(b);
A.print();
B.print();
Matrix C = A + B;
C.print();
C = 3.0*A;
C.print();
system("Pause");
return 0;
}
#include
回覆刪除#include
#include
using namespace std;
#define row 3
#define col 3
class Matrix {
public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0;i < row; i++) {
for (int j = 0;j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
for (int i = 0;i < row;i++) {
for (int j = 0;j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
};
Matrix&operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0;i < row; i++) {
for (int j = 0;j < col; j++)
C.term[i][j] = A(i, j)*2 + B(i, j)*2;
}
return C;
}
int main() {
double a[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
double b[3][3] = { {4,5,6 }, { 7,8,9 }, { 1,2,3 }};
Matrix A(a), B(b);
A.print();
B.print();
Matrix C = A + B;
C.print();
system("Pause");
return 0;
};
#include
回覆刪除#include
#include
using namespace std;
#define row 3
#define col 3
class Matrix {
public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0;i < row; i++) {
for (int j = 0;j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
for (int i = 0;i < row;i++) {
for (int j = 0;j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
};
Matrix&operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0;i < row; i++) {
for (int j = 0;j < col; j++)
C.term[i][j] = A(i, j)*2 + B(i, j)*2;
}
return C;
}
int main() {
double a[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
double b[3][3] = { {4,5,6 }, { 7,8,9 }, { 1,2,3 }};
Matrix A(a), B(b);
A.print();
B.print();
Matrix C = A + B;
C.print();
system("Pause");
return 0;
};
#include
回覆刪除#include
#include
using namespace std;
#define row 3
#define col 3
class Matrix {
public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0;i < row; i++) {
for (int j = 0;j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
for (int i = 0;i < row;i++) {
for (int j = 0;j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
};
Matrix&operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0;i < row; i++) {
for (int j = 0;j < col; j++)
C.term[i][j] = A(i, j)*2 + B(i, j)*2;
}
return C;
}
int main() {
double a[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
double b[3][3] = { {4,5,6 }, { 7,8,9 }, { 1,2,3 }};
Matrix A(a), B(b);
A.print();
B.print();
Matrix C = A + B;
C.print();
system("Pause");
return 0;
};
#include <iostream>
回覆刪除#include <cstdlib>
#include <cstring>
using namespace std;
#define row 3
#define col 3
class Matrix
{
public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "=================\n";
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
{
cout << term[i][j] << "\t";
}
cout << endl;
}
}
void R(int q) {
cout << "=================\n";
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
{
cout << term[i][j] * q << "\t";
}
cout << endl;
}
}
friend Matrix&operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix&operator*(Matrix A, Matrix B)
{
Matrix C;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++) {
C(i, j) = 0;
for (int k = 0;k < 3;k++)
C(i, j) += A(i, k)*B(k, j);
}
}
return C;
}
};
int main() {
double a[3][3] = { {1,2,3},{4,5,6},{7,8,9 }
};
double b[3][3] = { {4,5,6 }, { 7,8,9 }, { 1,2,3 }
};
Matrix A(a), B(b);
A.print();
B.print();
Matrix C = A + B;
C.print();
A.R(2);
C = A*B;
C.print();
system("Pause");
return 0;
}
class Matrix {
回覆刪除public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "----------------\n";
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = r*A(i, j) ;
}
return C;
}
};
class Matrix {
回覆刪除public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "----------------\n";
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = r*A(i, j) ;
}
return C;
}
};
class Matrix {
回覆刪除public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "----------------\n";
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = r*A(i, j) ;
}
return C;
}
};
class Matrix {
回覆刪除public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "----------------\n";
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = r*A(i, j) ;
}
return C;
}
};
class Matrix {
回覆刪除public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
term[i][j] = a[i][j];
}
}
double& operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "----------------\n";
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix C;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++)
C.term[i][j] = r*A(i, j) ;
}
return C;
}
};
回覆刪除#include
#include
using namespace std;
#define row 4
#define col 3
class Matrix {
public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
term[i][j] = a[i][j];
}
}
double&operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "--------------------\n";
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix M;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
M.term[i][j] = r*A(i, j);
}
return M;
}
};
int main()
{
double a[4][3] = { {1,2,3},{4,5,6},{7,8,9},{10,11,12}};
double b[4][3] = { {0,2,3},{0,1,1},{0,1,2},{2,3,5}};
Matrix A(a), B(b);
A.print();
B.print();
Matrix C = A + B;
C.print();
Matrix M = 2.0*A;
M.print();
system("Pause");
return 0;
}
#include
回覆刪除#include
#include
using namespace std;
#define row 4
#define col 3
class Matrix {
public:
double term[row][col];
Matrix() { memset(term, 0, sizeof(term)); }
Matrix(double a[row][col]) {
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
term[i][j] = a[i][j];
}
}
double&operator()(int i, int j) {
return term[i][j];
}
void print() {
cout << "--------------------\n";
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++) {
cout << term[i][j] << "\t";
}
cout << endl;
}
}
friend Matrix& operator+(Matrix A, Matrix B) {
Matrix C;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
C.term[i][j] = A(i, j) + B(i, j);
}
return C;
}
friend Matrix& operator*(double r, Matrix A) {
Matrix M;
for (int i = 0;i < row;i++) {
for (int j = 0;j < col;j++)
M.term[i][j] = r*A(i, j);
}
return M;
}
};
int main()
{
double a[4][3] = { {1,2,3},{4,5,6},{7,8,9},{10,11,12}};
double b[4][3] = { {0,2,3},{0,1,1},{0,1,2},{2,3,5}};
Matrix A(a), B(b);
A.print();
B.print();
Matrix C = A + B;
C.print();
Matrix M = 2.0*A;
M.print();
system("Pause");
return 0;
}