Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- #include <iomanip>
- void setDim(int* pRows, int* pColumns) {
- std::cout << "Enter the number of rows: ";
- std::cin >> *pRows;
- std::cout << "Enter the number of columns: ";
- std::cin >> *pColumns;
- }
- int** initializeMatrix(int rows, int columns) {
- int** matrix = new int*[rows];
- for (int i = 0; i < rows; i++) {
- matrix[i] = new int[columns];
- }
- return matrix;
- }
- void fillMatrix(int** matrix, int rows, int columns) {
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < columns; j++) {
- matrix[i][j] = std::rand() % 5 + 1;
- }
- }
- }
- void printMatrix(int** matrix, int rows, int columns) {
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < columns; j++) {
- std::cout << std::setw(3) << matrix[i][j] << " ";
- }
- std::cout << std::endl;
- }
- std::cout << std::endl;
- }
- void multiplicateMatrix(int** multiplicand, int** multiplier, int** product, int productRows, int productColumns, int multiplicandColumns) {
- int temp = 0;
- for (int i = 0; i < productRows; i++) {
- for (int j = 0; j < productColumns; j++) {
- for (int k = 0; k < multiplicandColumns; k++) {
- temp += multiplicand[i][k] * multiplier[k][j];
- }
- product[i][j] = temp;
- temp = 0;
- }
- }
- }
- void deleteMatrix(int** matrix, int rows) {
- for (int i = 0; i < rows; i++) {
- delete[] matrix[i];
- }
- delete[] matrix;
- }
- int main(int argc, char **argv) {
- int matrix1rows, matrix1columns;
- int matrix2rows, matrix2columns;
- int matrix3rows, matrix3columns;
- std::srand(std::time(NULL));
- std::cout << "First matrix:" << std::endl;
- setDim(&matrix1rows, &matrix1columns);
- std::cout << "Second matrix:" << std::endl;
- setDim(&matrix2rows, &matrix2columns);
- // проверка согласованости матриц
- if (matrix1columns != matrix2rows) {
- std::cout << "Матрицы не согласованы";
- return 1;
- }
- int **matrix1 = initializeMatrix(matrix1rows, matrix1columns);
- fillMatrix(matrix1, matrix1rows, matrix1columns);
- int **matrix2 = initializeMatrix(matrix2rows, matrix2columns);
- fillMatrix(matrix2, matrix2rows, matrix2columns);
- printMatrix(matrix1, matrix1rows, matrix1columns);
- printMatrix(matrix2, matrix2rows, matrix2columns);
- matrix3rows = matrix1rows;
- matrix3columns = matrix2columns;
- int **matrix3 = initializeMatrix(matrix3rows, matrix3columns);
- multiplicateMatrix(matrix1, matrix2, matrix3, matrix3rows, matrix3columns, matrix1columns);
- printMatrix(matrix3, matrix3rows, matrix3columns);
- // освобождение памяти
- deleteMatrix(matrix1, matrix1rows);
- deleteMatrix(matrix2, matrix2rows);
- deleteMatrix(matrix3, matrix3rows);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement