private int TransformMatrixPart1(Fraction[,] matrix)
 {
     // i - строка с "1" на [i,i]
     for (int i = 0; i < m; i++)
     {
         if (matrix[i, i].Numerator == 0)
         {
             // j - строки ниже i (из которых нужно вычесть i-ую строку)
             for (int j = i; j < m; j++)
             {
                 // i - столбец, j- строка
                 // среди элементов столбца матрицы выбираем ненулевой
                 // и перемещам его на крайнее верхнее положение
                 if (matrix[i, j].Numerator != 0)
                 {
                     if (i != j)
                     {
                         SwapRows(matrix, i, j);
                     }
                     break;
                 }
             }
             if (matrix[i, i].Numerator == 0)
             {
                 //MessageBox.Show("ошибка: В условии есть нулевой столбец № " + i +
                 //    "\nПеременная с таким номером может быть любой ");
                 return(i);
             }
         }
         // нормируем [i,i], делим i-ую строку на коэф. при [i,i]
         for (int l = n; l >= 0; l--)
         {
             if (matrix[i, i].Numerator != 0)
             {
                 matrix[l, i] = matrix[l, i] / matrix[i, i];
             }
         }
         // сохраняем этап нормирования в Matrixs
         Matrixs.Add((Fraction[, ])matrix.Clone());
         // вычитаем из каждой k-ой строки i-ую
         for (int k = i + 1; k < m; k++)
         {
             SubtractRow(matrix, i, k);
         }
     }
     return(-1);
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            Matrixs a = new Matrixs();

            //int[,] data=a.ReadData(3, 3);
            //a.ShowData(data);

            //int[,]result=a.Diaqonal(data);
            //a.ShowData(result);
            //Console.WriteLine("\t");


            //for triangle matrix

            int[,] result = a.Triangle(5, 5);
            Console.ReadKey();
        }
Beispiel #3
0
 public void MatrixTransform()
 {
     Matrixs.Dequeue();
 }
Beispiel #4
0
 public ushort GetMatrix()
 {
     return(Matrixs.Peek());
 }