Введение
В этом практическом занятии мы научимся находить произведение двух матриц (двухмерных массивов) на языке программирования C++. Мы разобьем это на простые шаги, чтобы даже новички могли без труда следовать за ними.
Подключите необходимые заголовочные файлы
Мы создадим новый файл с именем main.cpp в директории ~/project с помощью следующей команды:
touch ~/project/main.cpp
В первом шаге нам нужно подключить необходимые заголовочные файлы.
#include <iostream>
Мы будем использовать файл iostream для ввода и вывода данных.
Определите функцию main()
Во втором шаге мы объявляем главную функцию.
int main() {
Объявите переменные
В третьем шаге нам нужно объявить переменные для хранения входных матриц и результата умножения.
int row1, col1, row2, col2, i, j, k;
int m1[10][10], m2[10][10], pro[10][10];
Здесь row1 и col1 представляют собой количество строк и столбцов для первой матрицы соответственно, а row2 и col2 представляют собой количество строк и столбцов для второй матрицы соответственно. Переменные m1, m2 и pro представляют две входные матрицы и матрицу произведения.
Получите ввод от пользователя
В четвертом шаге мы получим матрицы от пользователя.
std::cout << "\nEnter the number of Rows and Columns of first matrix : ";
std::cin >> row1 >> col1;
std::cout << "\nEnter the number of Rows and Columns of second matrix : ";
std::cin >> row2 >> col2;
// input of first matrix
std::cout << "\nEnter the " << row1 * col1 << " elements of first matrix : \n";
for (i = 0; i < row1; i++) {
for (j = 0; j < col1; j++) {
std::cin >> m1[i][j];
}
}
// input of second matrix
std::cout << "\nEnter the " << row2 * col2 << " elements of second matrix : \n";
for (i = 0; i < row2; i++) {
for (j = 0; j < col2; j++) {
std::cin >> m2[i][j];
}
}
Здесь мы получаем ввод от пользователя для количества строк и столбцов двух матриц, а затем ввод для каждого элемента матриц.
Умножьте матрицы
В пятом шаге мы умножим матрицы.
if (col1 == row2) {
for (i = 0; i < row1; i++) {
for (j = 0; j < col2; j++) {
pro[i][j] = 0;
for (k = 0; k < col1; k++)
pro[i][j] = pro[i][j] + (m1[i][k] * m2[k][j]);
}
}
}
Здесь мы сначала проверяем, допустимы ли матрицы для умножения. Если да, то выполняем умножение, как объяснялось в введении.
Отобразите матрицы
В шестом шаге мы отобразим матрицы.
std::cout << "\nThe first matrix is : \n";
for (i = 0; i < row1; i++) {
for (j = 0; j < col1; j++) {
std::cout << m1[i][j] << " ";
}
std::cout << std::endl;
}
std::cout << "\nThe second matrix is : \n";
for (i = 0; i < row2; i++) {
for (j = 0; j < col2; j++) {
std::cout << m2[i][j] << " ";
}
std::cout << std::endl;
}
std::cout << "\nThe Product matrix is : \n";
for (i = 0; i < row1; i++) {
for (j = 0; j < col2; j++) {
std ::cout << pro[i][j] << " ";
}
std::cout << std::endl;
}
Мы сначала отображаем две матрицы, а затем результирующую матрицу.
Компилируйте и запустите код
Для компиляции кода откройте терминал и перейдите в директорию, где сохранен файл с кодом. Теперь запустите следующую команду для компиляции кода:
g++ main.cpp -o main
После успешной компиляции кода запустите следующую команду для выполнения программы:
./main
Резюме
Поздравляем! Вы узнали, как найти произведение двух матриц на языке программирования C++. Мы узнали, как проверить, допустимы ли матрицы для умножения, как умножать матрицы и как отображать исходные и результирующие матрицы. Мы проверили код в среде Linux и узнали, как компилировать и запускать код.



