Программа рассчитывает сумму элементов с четной суммой индексов в двух матрицах - 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();
        }
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы