Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++ Матрицы, их умножение

щж Ученик (82), на голосовании 1 год назад
Нужен код программы на C++ для этого задания
Голосование за лучший ответ
Инспектор Жопидý Оракул (88670) 1 год назад
Вот код программы на C++ для решения задачи о матричном умножении:

```c++
#include <iostream>

using namespace std;

// Функция для умножения матриц
void multiplyMatrices(int** A, int** B, int** C, int m, int n, int k) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < k; j++) {
C[i][j] = 0;
for (int p = 0; p < n; p++) {
C[i][j] += A[i][p] * B[p][j];
}
}
}
}

// Функция для транспонирования матрицы
void transposeMatrix(int** A, int** B, int m, int n) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
B[j][i] = A[i][j];
}
}
}

int main() {
// Размеры матриц
int m = 3;
int n = 2;
int k = 3;

// Инициализация матриц
int** A = new int*[m];
for (int i = 0; i < m; i++) {
A[i] = new int[n];
}

int** B = new int*[n];
for (int i = 0; i < n; i++) {
B[i] = new int[k];
}

// Заполнение матриц
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
A[i][j] = rand() % 10;
}
}

for (int i = 0; i < n; i++) {
for (int j = 0; j < k; j++) {
B[i][j] = rand() % 10;
}
}

// Вывод матриц
cout << "Матрица A:" << endl;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << A[i][j] << " ";
}
cout << endl;
}

cout << "Матрица B:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < k; j++) {
cout << B[i][j] << " ";
}
cout << endl;
}

// Умножение матриц
int** C = new int*[m];
for (int i = 0; i < m; i++) {
C[i] = new int[k];
}

multiplyMatrices(A, B, C, m, n, k);

// Вывод результата
cout << "Произведение матриц:" << endl;
for (int i = 0; i < m; i++) {
for (int j = 0; j < k; j++) {
cout << C[i][j] << " ";
}
cout << endl;
}

return 0;
}
```

Эта программа использует следующие структуры данных:

* `int**` - двумерный массив целых чисел.

Функции `multiplyMatrices()` и `transposeMatrix()` реализуют умножение матриц и транспонирование матрицы соответственно.

Основной цикл программы выполняет умножение матриц. Для этого цикл проходит по строкам матрицы `A` и столбцам матрицы `B`. Для каждого элемента матрицы `C` вычисляется произведение соответствующих элементов строк и столбцов матриц `A` и `B`.

```c++
for (int i = 0; i < m; i++) {
for (int j = 0; j < k; j++) {
C[i][j] = 0;
Похожие вопросы