Задача 13. Определить максимальное значение среди элементов квадратной матрицы ;
Здесь - начения элементов матриц А, В и n –задаются.
Блок схема имеет следующий вид:
i=0, il=0, lx=0, x
Рис. 75 Блок схема произведения матриц.
Ниже приводится текст программы с результатами расчетов:
static void Multiplication(int n, double[,] a, double[,] b)
{
double[,] Multip_of_B_B = new double[n, n];// Матрица B^2
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_B_B[i, j] += b[i, k] * b[k, j];
}
}
}
double[,] Multip_of_B_B_B = new double[n, n];// Матрица B^3
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_B_B_B[i, j] += Multip_of_B_B[i, k] * b[k, j];
}
}
}
double[,] Multip_of_B_B_B_B = new double[n, n];// Матрица B^4
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_B_B_B_B[i, j] += Multip_of_B_B_B[i, k] * b[k, j];
}
}
}
double[,] Multip_of_A_BPow3 = new double[n, n];// Умножение матриц A и B^3
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_A_BPow3[i, j] += a[i, k] * Multip_of_B_B_B[k, j];
}
}
}
Console.WriteLine("Матрица D имеет вид:");
double[,] D = new double[n, n];// Матрица D
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
D[i, j] = Multip_of_B_B_B_B[i, j] + Multip_of_A_BPow3[i, j];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write($"{ D[i, j]}\t");
}
Console.WriteLine();
}
double max = D.Cast().Max(); // Минимальное значение
Console.Write("Максимальное значение среди элементов матрицы D: {0}", max);
}
static void Main(string[] args)
{
Console.Write("Введите размерность матриц: ");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("Введите элементы матрицы А: ");
double[,] A = new double[n, n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
A[i, j] = double.Parse(Console.ReadLine());
}
}
Console.WriteLine("Введите элементы матрицы B: ");
double[,] B = new double[n, n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
B[i, j] = double.Parse(Console.ReadLine());
}
}
Multiplication(n, A, B);
Console.ReadKey();}
Инструкция по работе с кодом программы была написана для запуска в Microsoft Visual Studio.
Для начала компиляции кода программы, необходимо нажать на кнопку Start на панели инструментов Microsoft Visual Studio или кнопку F5 на клавиатуре. В случае, если при компиляции не были обнаружены синтаксические или прочие ошибки, код успешно компилируется и выводится программа в окне консоли (черное окно вывода).
Для вычисления искомой величины, необходимо, ввести размерность матриц n, элементы матриц А и B:
"Введите размерность матриц: "
2 Enter;
"Введите элементы матрицы А: "
1 Enter;
2 Enter;
3 Enter;
4 Enter;
"Введите элементы матрицы B: "
1 Enter;
2 Enter;
3 Enter;
4 Enter;
"Матрица D имеет вид: "
870 1268
1902 2772
Далее, программа производит расчет и выводит сообщение с искомой величиной в окно консоли:
"Максимальное значение среди элементов матрицы D: 1268"
Рис. 76 Результат работы программы по определению максимального элемента матрицы D.
Do'stlaringiz bilan baham: |