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(); }