using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
//Функция f1(i,j)
static double f1(int i, int j)
{
return 1.0 * (4 * i * j + 2) / (3 * i + j + 1) - i;
}
//Функция f2(i,j)
static double f2(int i, int j)
{
return i + 3 * f1(i, j);
}
//Функция вывода матрицы A с именем Name размерности m на n на экран
static void print(char Name, double[,] A, int m, int n)
{
Console.WriteLine("\nМатрица {0}:", Name);
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
Console.Write("{0,8}", Math.Round(A[i, j], 3));
Console.Write("\n");
}
}
//Функция вычисления суммы элементов гл. диагонали
static double getSum(double[,] A, int m, int n)
{
int k = m < n ? m : n;
double sum = 0;
for (int i = 0; i < k; i++)
sum += A[i, i];
return sum;
}
//Основная функия
static void Main(string[] args)
{
int m, n;
//Ввод размерностей матриц
Console.Clear();
Console.Write("Введите количество строк массивов: ");
m = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите количество столбцов массивов: ");
n = Convert.ToInt32(Console.ReadLine());
double[,] A = new double[m, n];
double[,] B = new double[m, n];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
A[i, j] = f1(i, j);
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
B[i, j] = f2(i, j);
print('A', A, m, n);
print('B', B, m, n);
//Вычисление матрицы C
double[,] C = new double[m, n];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
C[i, j] = A[i, j] * B[i, j];
print('C', C, m, n);
//Вычисление матрицы G
double[,] G = new double[m, n];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
{
if ((i != j) && (i != n - j - 1))
G[i, j] = A[i, j];
else if (i == j)
G[i, j] = A[i, n - i - 1];
else
G[i, j] = A[i, i];
}
print('G', G, m, n);
double sum = getSum(G, m, n);
Console.WriteLine("\nСумма элементов, лежащих на главной диагонали матрицы G = {0}", Math.Round(sum, 3));
Console.ReadKey();
}
}
}
Скриншоты работы приложения
