Esempio n. 1
0
File: Matrix.cs Progetto: AsTeFu/ATF
            public static MatrixRational operator *(Rational scalar, MatrixRational matrix)
            {
                MatrixRational newMatrix = new MatrixRational(matrix.Lines, matrix.Columns);

                for (int i = 0; i < newMatrix.Lines; i++)
                {
                    for (int j = 0; j < newMatrix.Columns; j++)
                    {
                        newMatrix.matrix[i, j] = matrix.matrix[i, j] * scalar;
                    }
                }
                return(newMatrix);
            }
Esempio n. 2
0
                public void DeleteZeroLines()
                {
                    while (zeroLines() != -1)
                    {
                        int zeroLine = zeroLines();
                        deleteZeroLine(zeroLine);
                        Console.WriteLine("\tУдаляем пустую строку");
                    }

                    int zeroLines()
                    {
                        for (int i = 0; i < data.Lines; i++)
                        {
                            for (int j = 0; j < data.Columns; j++)
                            {
                                if (data[i, j] != 0)
                                {
                                    break;
                                }

                                if (j == data.Columns - 1)
                                {
                                    return(i);
                                }
                            }
                        }
                        return(-1);
                    }

                    void deleteZeroLine(int line)
                    {
                        int offset = 0;

                        Rational[,] rationals = new Rational[data.Lines - 1, data.Columns];
                        for (int i = 0; i < data.Lines; i++)
                        {
                            if (line != i)
                            {
                                for (int j = 0; j < data.Columns; j++)
                                {
                                    rationals[i - offset, j] = data[i, j];
                                }
                            }
                            else
                            {
                                offset++;
                            }
                        }
                        data = new MatrixRational(rationals);
                    }
                }
Esempio n. 3
0
File: Matrix.cs Progetto: AsTeFu/ATF
            public static MatrixRational operator +(MatrixRational left, MatrixRational right)
            {
                if (left.Lines == right.Lines && left.Columns == right.Columns)
                {
                    MatrixRational newMatrix = new MatrixRational(left.Lines, left.Columns);

                    for (int i = 0; i < newMatrix.Lines; i++)
                    {
                        for (int j = 0; j < newMatrix.Columns; j++)
                        {
                            newMatrix.matrix[i, j] = left.matrix[i, j] + right.matrix[i, j];
                        }
                    }

                    return(newMatrix);
                }
                else
                {
                    return(null);
                }
            }
Esempio n. 4
0
File: Matrix.cs Progetto: AsTeFu/ATF
            public static MatrixRational operator *(MatrixRational left, MatrixRational right)
            {
                if (left.Columns == right.Lines)
                {
                    MatrixRational newMatrix = new MatrixRational(left.Lines, right.Columns);

                    for (int i = 0; i < newMatrix.Lines; i++)
                    {
                        for (int j = 0; j < newMatrix.Columns; j++)
                        {
                            for (int k = 0; k < left.Columns; k++)
                            {
                                newMatrix.matrix[i, j] += left.matrix[i, k] * right.matrix[k, j];
                            }
                        }
                    }

                    return(newMatrix);
                }
                else
                {
                    return(null);
                }
            }
Esempio n. 5
0
 public void Solve()
 {
     data = GetSolve().data;
 }
Esempio n. 6
0
 public void SteppedForm()
 {
     data = GetSteppedForm().data;
 }
Esempio n. 7
0
 public ElementaryTransformations(MatrixRational matrix)
 {
     data = matrix;
 }