// Метод для умножения матриц static int[,] MatrixMultiplication(int[,] matrixA, int[,] matrixB) { if (matrixA.RowsCount() != matrixB.RowsCount() && matrixA.ColumnsCount() != matrixB.RowsCount()) { throw new MatrixSizeException("ОШИБКА: Размерности матриц не совпадают!"); } var matrixC = new int[matrixA.RowsCount(), matrixB.ColumnsCount()]; for (var i = 0; i < matrixA.RowsCount(); i++) { for (var j = 0; j < matrixB.ColumnsCount(); j++) { matrixC[i, j] = 0; for (var k = 0; k < matrixA.ColumnsCount(); k++) { try { matrixC[i, j] += matrixA[i, k] * matrixB[k, j]; } catch (IndexOutOfRangeException ex) { Console.WriteLine("ОШИБКА: " + ex.Message + "\n\n"); Main(); } } } } return(matrixC); }
public static int[,] MatrixMultiplication(int[,] matrixA, int[,] matrixB) { if (matrixA.ColumnsCount() != matrixB.RowsCount()) { throw new Exception("Умножение не возможно! Количество столбцов первой матрицы не равно количеству строк второй матрицы."); } var matrixC = new int[matrixA.RowsCount(), matrixB.ColumnsCount()]; for (var i = 0; i < matrixA.RowsCount(); i++) { for (var j = 0; j < matrixB.ColumnsCount(); j++) { matrixC[i, j] = 0; for (var k = 0; k < matrixA.ColumnsCount(); k++) { var resOfMultipl = ProductOfNumbers(matrixA[i, k], matrixB[k, j]); matrixC[i, j] = SumOfNumbers(matrixC[i, j], resOfMultipl); } } } return(matrixC); }
static int [,] Mult3(int [,] num) { for (var i = 0; i < num.RowsCount(); i++) { for (var j = 0; j < num.ColumnsCount(); j++) { num[i, j] *= 3; } } return(num); }
static void Show(int [,] num) { for (var i = 0; i < num.RowsCount(); i++) { for (var j = 0; j < num.ColumnsCount(); j++) { Console.Write(num[i, j] + " "); } Console.WriteLine(); } }
// метод для виводу матриці static void PrintMatrix(int[,] matrix) { for (var i = 0; i < matrix.RowsCount(); i++) { for (var j = 0; j < matrix.ColumnsCount(); j++) { Console.Write(matrix[i, j].ToString().PadLeft(4)); } Console.WriteLine(); } }
// Метод GetEmpty, который возвращает нулевую матрицу static int[,] MatrixGetEmpty(int[,] matrixA, int[,] matrixB) { var matrixC = new int[matrixA.RowsCount(), matrixB.ColumnsCount()]; for (var i = 0; i < matrixA.RowsCount(); i++) { for (var j = 0; j < matrixB.ColumnsCount(); j++) { try { matrixC[i, j] = 0; } catch (IndexOutOfRangeException ex) { Console.WriteLine("ОШИБКА: " + ex.Message + "\n\n"); Main(); } } } return(matrixC); }
// метод для множення матриць static int[,] MatrixMultiplication(int[,] matrixA, int[,] matrixB) { if (matrixA.ColumnsCount() != matrixB.RowsCount()) { throw new Exception("Множення не можливе! Кількість стовпців першої матриці не рівно кількості рядків другої матриці."); } var matrixC = new int[matrixA.RowsCount(), matrixB.ColumnsCount()]; for (var i = 0; i < matrixA.RowsCount(); i++) { for (var j = 0; j < matrixB.ColumnsCount(); j++) { matrixC[i, j] = 0; for (var k = 0; k < matrixA.ColumnsCount(); k++) { matrixC[i, j] += matrixA[i, k] * matrixB[k, j]; } } } return(matrixC); }