Добавил:
AiSora
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные / Лаб5
.cpp#include <iostream>
#include <cmath>
using namespace std;
void main()
{
setlocale(LC_ALL, "Russian");
int a[3][3], b[3][3], c[3][3], i, j, k, n, s;
cout << "Заполните массивы: \nA: \n \n";
for (i = 0; i < 3; i++) //Заполнение первого массива
for (j = 0; j < 3; j++)
cin >> a[i][j];
cout << "\nB: \n \n";
for (i = 0; i < 3; i++) //Заполнение второго массива
for (j = 0; j < 3; j++)
cin >> b[i][j];
cout << "\nНовый массив: \n \n";
for (i = 0; i < 3; i++) //Получение нового массива перемножением 2-х начальных матриц и его вывод на экран
{
for (j = 0; j < 3; j++)
{
c[i][j] = 0;
for (k = 0; k < 3; k++)
c[i][j] += a[i][k] * b[k][j];
cout << c[i][j] << " \t";
}
cout << endl << endl;
}
cout << "Введите степень (>1), в которую хотите возвести первую матрицу: \n \n";
cin >> n; //Считывание степени
cout << endl;
for (i = 0; i < 3; i++) //Присвоение второму массиву значений первого
for (j = 0; j < 3; j++)
b[i][j] = a[i][j];
for (s = 0; s < n - 1; s++) //Возведение в степень
{
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
{
c[i][j] = 0;
for (k = 0; k < 3; k++)
c[i][j] += a[i][k] * b[k][j];
}
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
b[i][j] = c[i][j];
}
for (i = 0; i < 3; i++) //Вывод получившейся матрицы
{
for (j = 0; j < 3; j++)
cout << c[i][j] << " \t";
cout << endl << endl;
}
system("pause");
}