static void Main(string[] args) { uint exParam1 = Constants.PARAM1; double minPos; double maxNeg; // Чистим чтобы старое не мешалось :) Console.Clear(); // Создаём прямоугольную матрицу, в конструктор передаём размер матрицы MatrixEx me = new MatrixEx(Constants.MATRIX_ROWS, Constants.MATRIX_COLS); // Выводим таблицу, метод Print описан в классе базовой матрицы и унаследован me.Print(); minPos = me.GetMinPos(); maxNeg = me.GetMaxNeg(); System.Console.WriteLine(String.Format("Minimalny polozhit: {0,5:0.###}, maximalny otricat: {1,5:0.###}", minPos, maxNeg)); // Проверяем условие задачи double diff = Math.Abs(Math.Abs(minPos) - Math.Abs(maxNeg)); System.Console.WriteLine(String.Format("Elementy otlichautsa na {0,5:0.###}", diff)); if(diff < exParam1) { /* Так как элементы по модулю отличаются меньше, чем на заданную величину, то меняем * элементы матрицы на их модули, после чего выводим изменённую матрицу */ me.Absolute(); me.Print(); } else { System.Console.WriteLine("Elementy otlichautsa bolshe chem na zadannuy velichinu ili rovno na nee"); } Console.ReadKey(); }
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(); // Ждём выброс и валим нахер! }