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(); // Ждём выброс и валим нахер!
        }
        static void Main(string[] args)
        {
            // Среднее арифметическое матрицы для сравнения
            double oldW = 0;
            ushort mneg;

            // Чистим чтобы старое не мешалось :)
            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));

            // Определяем столбец в котором максимальное количество отрицательных элементов
            mneg = me.WhichIsMaxNegative();
            System.Console.WriteLine(String.Format("V {0} stolbce bolshe vsego otricatelnyh elementov", mneg + 1));

            me.AbsoluteAfter(mneg);
            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));

            Console.ReadKey(); // Ждём выброс и валим нахер!
        }
        static void Main(string[] args)
        {
            // Чистим чтобы старое не мешалось :)
            Console.Clear();

            // Создаём квадратную матрицу, в конструктор передаём размер матрицы
            MatrixEx me = new MatrixEx(Constants.MATRIX_SIDE);
            // Выводим таблицу, метод Print описан в классе базовой матрицы и унаследован
            me.Print();

            if(me.IsTriangular())
            {
                // Выводим среднее арифметическое матрицы
                System.Console.WriteLine(String.Format("Sredneye arifmet: {0,6:0.####}", me.CalcW()));
            }
            else
            {
                // Показать количество элементов выше главной диагонали, отличных от нуля
                System.Console.WriteLine(String.Format("Vyshe glavnoy diagonaly {0} el-tov ne ravny 0", me.CountUpEls()));
            }

            Console.ReadKey();
        }