Программа рассчитывает сумму элементов с четной суммой индексов в двух матрицах - C#
Формулировка задачи:
Программа рассчитывает сумму элементов с четной суммой индексов
в двух матрицах, которые хранятся в разных файлах.
Помогите плиз.
Решение задачи: «Программа рассчитывает сумму элементов с четной суммой индексов в двух матрицах»
textual
Листинг программы
- using System;
- using System.Linq;
- using System.IO;
- namespace CyberForum
- {
- class Program
- {
- //Считывает размер матрицы из файла
- public static int GetMatrixSize(string fileWithMatrix)
- {
- string[] arr = File.ReadAllLines(fileWithMatrix);
- return Convert.ToInt32(arr[0]);
- }
- //Считивает матрицу из файла
- public static int[,] MyMatrix(string fileWithMatrix, int size)
- {
- string[] arr = File.ReadAllLines(fileWithMatrix);
- int[,] matrix = new int[size, size];
- for (int i = 0; i < size; i++)
- {
- var tmp = arr[i + 1].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
- for (int j = 0; j < tmp.Length; j++)
- matrix[i, j] = tmp[j];
- }
- return matrix;
- }
- //Выводит матрицу на экран
- public static void DisplayMatrix(int[,] matrix, int size, string fileWithMatrix)
- {
- Console.WriteLine("Матрица из файла {0}: ", fileWithMatrix);
- for (int i = 0; i < size; i++)
- {
- for (int j = 0; j < size; j++)
- {
- Console.Write(matrix[i, j] + " ");
- }
- Console.WriteLine();
- }
- }
- //Считает сумму элементов, где сумма индексов четная
- public static int CalculateSum(int[,] matrix, int size)
- {
- int sum = 0;
- for(int i=0; i<size; i++)
- for (int j = 0; j < size; j++)
- sum += (i + j)%2 == 0 ? matrix[i, j] : 0;
- return sum;
- }
- static void Main(string[] args)
- {
- int n=GetMatrixSize("D:/MatrixA.txt");
- int[,] matrixA=new int[n,n];
- Array.Copy(MyMatrix("D:/MatrixA.txt", n), matrixA, n*n);
- DisplayMatrix(matrixA, n, "D:/MatrixA.txt");
- Console.WriteLine("Сумма элементов, где есть четная сумма индексов, равна: " + CalculateSum(matrixA, n));
- Console.WriteLine();
- int m = GetMatrixSize("D:/MatrixB.txt");
- int[,] matrixB = new int[m, m];
- Array.Copy(MyMatrix("D:/MatrixB.txt", m), matrixB, m*m);
- DisplayMatrix(matrixB, m, "D:/MatrixB.txt");
- Console.WriteLine("Сумма элементов, где четная сумма индексов, равна: " + CalculateSum(matrixB, m));
- Console.ReadKey();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д