Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class matrix {
- private:
- int size_line,
- size_column,
- **p_matrix;
- public:
- matrix() {
- size_line = 0;
- size_column = 0;
- p_matrix = NULL;
- }
- matrix(int _size_line, int _size_column) {
- size_line = _size_line;
- size_column = _size_column;
- p_matrix = new int* [size_line];
- for (int i_line = 0; i_line < size_line; i_line++) {
- p_matrix[i_line] = new int[size_column];
- for (int i_column = 0; i_column < size_column; i_column++)
- p_matrix[i_line][i_column] = 0;
- }
- }
- void input() {
- cout << "Enter size of line: ";
- cin >> size_line;
- cout << "Enter size of column: ";
- cin >> size_column;
- cout << "Enter elements your matrix: " << endl;
- p_matrix = new int* [size_line];
- for (int i_line = 0; i_line < size_line; i_line++) {
- p_matrix[i_line] = new int[size_column];
- for (int i_column = 0; i_column < size_column; i_column++)
- cin >> p_matrix[i_line][i_column];
- }
- }
- void print() {
- if (p_matrix == NULL) {
- cout << "ERROR: empty matrix." << endl;
- return;
- }
- for (int i_line = 0; i_line < size_line; i_line++) {
- for (int i_column = 0; i_column < size_column; i_column++)
- cout << p_matrix[i_line][i_column] << '\t';
- cout << endl;
- }
- }
- matrix operator* (const matrix &B) {
- if (size_column != B.size_line) {
- matrix ERROR;
- cout << "ERROR: unsuitable matrices." << endl;
- return ERROR;
- }
- matrix result(size_line, B.size_column);
- for (int i_fixed_line = 0; i_fixed_line < size_line; i_fixed_line++)
- for (int i_fixed_col = 0; i_fixed_col < B.size_column; i_fixed_col++)
- for (int i_dynamic = 0; i_dynamic < size_column; i_dynamic++)
- result.p_matrix[i_fixed_line][i_fixed_col] += p_matrix[i_fixed_line][i_dynamic] * B.p_matrix[i_dynamic][i_fixed_col];
- return result;
- }
- };
- int main() {
- matrix A;
- cout << "Enter matrix A: " << endl;
- A.input();
- matrix B;
- cout << "Enter matrix B: " << endl;
- B.input();
- cout << "Result A * B: " << endl;
- matrix C;
- C = A * B;
- C.print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement