private void FindMaxAndMinButton_Click(object sender, EventArgs e) { int rowCount = inputMatrixDGV.RowCount; int colCount = inputMatrixDGV.ColumnCount; if (rowCount != 1 && rowCount == colCount) { try { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; matrix.ArrayDouble = DataGridViewUtils.GridToArray2 <double>(inputMatrixDGV); double min = matrix.FindMinUnderDiagonal(); double max = matrix.FindMaxUpperDiagonal(); MaxAndMinResult.Text = string.Format("Максимальное значение над диагональю : {0} \n Минимальное значение под диагональю: {1} ", max, min); } catch { MessageBox.Show("Таблица заполнена неверно."); } } else { MessageBox.Show("Ошибка. Матрица должна быть квадратная, и не состоять из одного элемента."); } }
static void Main(string[] args) { Array2Utility arr = new Array2Utility(); while (true) { try { string[] a = InputMatrix(); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; if (arr.IsMatrixSquare(a)) { double[,] Matrix = new double[a.Length, a.Length]; for (int i = 0; i < a.Length; i++) { var numbers = a[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); for (int k = 0; k < numbers.Length; k++) { Matrix[i, k] = Convert.ToDouble(numbers[k]); } } arr.ArrayDouble = Matrix; Console.WriteLine("Наибольшее число над диагональю = " + arr.FindMaxUpperDiagonal()); Console.WriteLine("Наименьшее число под диагональю = " + arr.FindMinUnderDiagonal()); Save(a); } else { Console.WriteLine("Матрица не квадратная"); } } catch { Console.WriteLine("Ошибка, неправильное заполнение матрицы"); } Console.WriteLine("Нажмите любую клавишу для продолжения"); Console.ReadKey(); } }