Ejemplo n.º 1
0
        // Метод для умножения матриц
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
    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();
        }
    }
Ejemplo n.º 5
0
    // метод для виводу матриці
    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();
        }
    }
Ejemplo n.º 6
0
        // Метод 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);
        }
Ejemplo n.º 7
0
    // метод для множення матриць
    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);
    }