Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Смирнова_Мария_2370_Лабораторная_7-2

.docx
Скачиваний:
2
Добавлен:
05.12.2024
Размер:
117.15 Кб
Скачать

Смирнова Мария 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;

}

Р езультат программы:

Б лок-схема: