
Смирнова_Мария_2370_Лабораторная_7-2
.docxСмирнова Мария 2370 Задание №7-2
С использованием решения по заданию №7-1 реализовать программу возведения прямоугольной матрицы в заданную положительную целую степень.
Требование:
- фрагмент программы, выполняющий перемножение двух матриц реализовать в виде функции.
Программа:
#include<iostream>
#include<cstdlib>
using namespace std;
void MatrixInput(int n, int mtx_1[4][4], int mtx_2[4][4], int mtx_3[4][4]) {
for (int l = 1; l < n; l++)
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
mtx_3[i][j] = 0;
for (int k = 0; k < 4; k++)
{
mtx_3[i][j] += mtx_1[i][k] * mtx_2[k][j];
}
}
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
mtx_1[i][j] = mtx_3[i][1];
}
}
}
}
int n;
const int x = 4;
int main() {
setlocale(LC_ALL, "rus");
cout << "Введите степень, в которую будет возводиться матрица: ";
cin >> n;
int mtx_1[x][x], mtx_2[x][x], mtx_3[x][x];
cout << "Заполните исходную матрицу размерностью 4 на 4: ";
for (int i = 0; i < 4; i++)
{
cout << endl;
for (int j = 0; j < 4; j++)
{
cin >> mtx_1[i][j];
}
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
mtx_2[i][j] = mtx_1[i][j];
}
}
MatrixInput(n, mtx_1, mtx_2, mtx_3);
cout << "Полученная матрица после перемножения в " << n << " степени:" << endl;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
cout << mtx_3[i][j] << " ";
cout << endl;
}
return 0;
}
Р
езультат
программы:
Б
лок-схема: