/// <summary> /// Умножение двух матриц /// </summary> void Operation_4() { Console.Clear(); Console.Write($"Введите количество строк 1-й матрицы ({minRow} - {maxRow}): "); string strRow_1 = Console.ReadLine(); Console.Write($"Введите количество столбцов 1-й матрицы ({minColumn} - {maxColumn}): "); string strColumn_1 = Console.ReadLine(); Console.Write($"Введите количество строк 2-й матрицы ({minRow} - {maxRow}): "); string strRow_2 = Console.ReadLine(); Console.Write($"Введите количество столбцов 2-й матрицы ({minColumn} - {maxColumn}): "); string strColumn_2 = Console.ReadLine(); if (dataEntryVerification(strRow_1, strColumn_1, out Row_1, out Column_1) && dataEntryVerification(strRow_2, strColumn_2, out Row_2, out Column_2)) { if (dataRangeCheck(minRow, maxRow, Row_1) && dataRangeCheck(minColumn, maxColumn, Column_1) && dataRangeCheck(minRow, maxRow, Row_2) && dataRangeCheck(minRow, maxRow, Column_2)) { A = new Matrix(Row_1, Column_1); B = new Matrix(Row_2, Column_2); controller = new MatrixController(); if (controller.MultiplicationResolution(A, B)) { Console.WriteLine("Исходные матрицы: "); A.createMatrix(-100, 100); A.printMatrix(); B.createMatrix(-100, 100); B.printMatrix(); Console.WriteLine("Результат умножения матриц: "); //Умножение матриц стандартным методом controller.Mult(A, B).printMatrix(); //Умножение матриц методом Винограда - Штрассена //StrassenAlgorithm.Multiplication(A, B).printMatrix(); } else { Console.WriteLine("Данные матрицы умножить невозможно!"); } } else { Console.WriteLine("Диапазон значений не соответствует!"); } } else { Console.WriteLine("Ошибка ввода данных!"); } }
/// <summary> /// Вычитание двух матриц /// </summary> void Operation_3() { Console.Clear(); Console.Write($"Введите количество строк 1-й матрицы ({minRow} - {maxRow}): "); string strRow_1 = Console.ReadLine(); Console.Write($"Введите количество столбцов 1-й матрицы ({minColumn} - {maxColumn}): "); string strColumn_1 = Console.ReadLine(); Console.Write($"Введите количество строк 2-й матрицы ({minRow} - {maxRow}): "); string strRow_2 = Console.ReadLine(); Console.Write($"Введите количество столбцов 2-й матрицы ({minColumn} - {maxColumn}): "); string strColumn_2 = Console.ReadLine(); if (dataEntryVerification(strRow_1, strColumn_1, out Row_1, out Column_1) && dataEntryVerification(strRow_2, strColumn_2, out Row_2, out Column_2)) { if (dataRangeCheck(minRow, maxRow, Row_1) && dataRangeCheck(minColumn, maxColumn, Column_1) && dataRangeCheck(minRow, maxRow, Row_2) && dataRangeCheck(minRow, maxRow, Column_2)) { A = new Matrix(Row_1, Column_1); B = new Matrix(Row_2, Column_2); controller = new MatrixController(); if (controller.Compare(A, B)) { Console.WriteLine("Исходные матрицы: "); A.createMatrix(-100, 100); A.printMatrix(); B.createMatrix(-100, 100); B.printMatrix(); Console.WriteLine("Результат вычитания матриц: "); controller.Sub(A, B).printMatrix(); } else { Console.WriteLine("Данные матрицы вычесть невозможно!"); } } else { Console.WriteLine("Диапазон значений не соответствует!"); } } else { Console.WriteLine("Ошибка ввода данных!"); } }
/// <summary> /// Операция умножения матрицы на число /// </summary> void Operation_1() { Console.Clear(); Console.Write($"Введите количество строк матрицы ({minRow} - {maxRow}): "); string strRow = Console.ReadLine(); Console.Write($"Введите количество столбцов матрицы ({minColumn} - {maxColumn}): "); string strColumn = Console.ReadLine(); Console.Write("Введите число: "); string strNumber = Console.ReadLine(); double Number; if (double.TryParse(strNumber, out Number)) { if (dataEntryVerification(strRow, strColumn, out Row_1, out Column_1)) { if (dataRangeCheck(minRow, maxRow, Row_1) && dataRangeCheck(minColumn, maxColumn, Column_1)) { A = new Matrix(Row_1, Column_1); controller = new MatrixController(); A.createMatrix(-100, 100); Console.WriteLine("Исходная матрица: "); A.printMatrix(); Console.WriteLine($"Результат умножения матрицы на число {Number}: "); controller.MatrixMultByNumber(A, Number).printMatrix(); } else { Console.WriteLine("Диапазон значений не соответствует!"); } } else { Console.WriteLine("Ошибка ввода данных!"); } } else { Console.WriteLine("Ошибка ввода данных!"); } }