static void Main(string[] args) { // Среднее арифметическое матрицы для сравнения double oldW = 0; // Чистим чтобы старое не мешалось :) Console.Clear(); // Создаём прямоугольную матрицу, в конструктор передаём размер матрицы MatrixEx me = new MatrixEx(Constants.MATRIX_ROWS, Constants.MATRIX_COLS); // Выводим таблицу, метод Print описан в классе базовой матрицы и унаследован me.Print(); // Выводим среднее арифметическое изначально сгенерированной матрицы oldW = me.CalcW(); System.Console.WriteLine(String.Format("Sredneye arifmet: {0,6:0.####}", oldW)); // Проверяем первое условие задачи if(me.IsFirstMaxNegative()) { /* Так как в первой строке оказалось максимальное количество отрицательных элементов, меняем * элементы матрицы на их модули, после чего выводим изменённую матрицу, считаем новое среднее * арифметическое и выводим его тоже: */ me.Absolute(); me.Print(); // Отвечаем на вопрос о том, как изменилось среднее арифметическое double newW = me.CalcW(); if(newW == oldW) System.Console.WriteLine(String.Format("Srednee arifmeticheskoe ne izmenilos': {0,6:0.####}", newW)); if(newW < oldW) System.Console.WriteLine(String.Format("Srednee arifmeticheskoe umenshilos': {0,6:0.####}", newW)); if(newW > oldW) System.Console.WriteLine(String.Format("Srednee arifmeticheskoe vozroslo: {0,6:0.####}", newW)); } else { System.Console.WriteLine("V pervoi stroke matricy ne maximalnoe kol-vo otricatelnyh elementov"); } Console.ReadKey(); // Ждём выброс и валим нахер! }