Exemple #1
0
        /// <summary>
        /// Заполняет матрицу значениями, которые будут введены с клавиатуры
        /// </summary>
        /// <param name="matrix">Матрица, которую следует заполнить значениями</param>
        public static void FillMatrix(Core.Matrix matrix)
        {
            for (var i = 0; i < matrix.Rows; i++)
            {
                for (var j = 0; j < matrix.Columns; j++)
                {
                    while (true)
                    {
                        Console.Write("[" + i + "]" + "[" + j + "] ");

                        var stringElementMatrix = Console.ReadLine();

                        if (!double.TryParse(stringElementMatrix, out var elementMatrix))
                        {
                            PrintErrorIncorrectData();
                            continue; // Повторить ввод значения, пока не будет введено корректное значение элемента матрицы
                        }

                        matrix[i, j] = elementMatrix;
                        break; // Если значение введено корректно, переходим к вводу следующего значения элемента матрицы
                    }
                }
            }
        }
Exemple #2
0
        static void Main()
        {
            while (true) // Запускаем ввод
            {
                Console.WriteLine("Enter the number of rows of matrix A");
                var stringRowsA = Console.ReadLine();
                if (!int.TryParse(stringRowsA, out var rowsA) || rowsA <= 0)
                {
                    PrintErrorIncorrectData();
                    continue; // Повторить ввод значения, пока не будет введено корректное значение
                }

                Console.WriteLine("Enter the number of columns of matrix A");
                var stringColumnsA = Console.ReadLine();
                if (!int.TryParse(stringColumnsA, out var columnsA) || columnsA <= 0)
                {
                    PrintErrorIncorrectData();
                    continue; // Повторить ввод значения, пока не будет введено корректное значение
                }

                Console.WriteLine("Enter the number of rows of matrix B");
                var stringRowsB = Console.ReadLine();
                if (!int.TryParse(stringRowsB, out var rowsB) || rowsB <= 0)
                {
                    PrintErrorIncorrectData();
                    continue;
                }

                Console.WriteLine("Enter the number of columns of matrix B");
                var stringColumnsB = Console.ReadLine();
                if (!int.TryParse(stringColumnsB, out var columnsB) || columnsB <= 0)
                {
                    PrintErrorIncorrectData();
                    continue;
                }


                var matrixA = new Core.Matrix(rowsA, columnsA);
                var matrixB = new Core.Matrix(rowsB, columnsB);

                Console.WriteLine("Enter the data of the matrix A");
                FillMatrix(matrixA);
                Console.WriteLine("Enter the data of the matrix B");
                FillMatrix(matrixB);

                Console.WriteLine("Matrix A \n" + matrixA);
                Console.WriteLine("Matrix B \n" + matrixB);

                Console.WriteLine("Select action on matrices: " +
                                  "\n1.Addition" +
                                  "\n2.Subtraction" +
                                  "\n3.Multiplication");

                var chooseAction = Console.ReadLine();

                try
                {
                    switch (chooseAction)
                    {
                    case "1":
                        Console.WriteLine("Matrix A + B \n" + (matrixA + matrixB));
                        break;

                    case "2":
                        Console.WriteLine("Matrix A - B \n" + (matrixA - matrixB));
                        break;

                    case "3":
                        Console.WriteLine("Matrix A * B \n" + (matrixA * matrixB));
                        break;

                    default:
                        PrintErrorIncorrectData();
                        break;
                    }
                }

                catch (MatrixDimensionsIncorrectException ex)
                {
                    Console.WriteLine("Exception: " + ex.Message + "\n" + ex.InformationDimension);
                }
            }
        }