Advertisement
Xsufu

Остатки от матриц

Sep 13th, 2020
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.71 KB | None | 0 0
  1. //вывод вектора свободных членов
  2.             Console.WriteLine("Вектор свободных членов: ");
  3.             foreach (var now in free)
  4.                 Console.WriteLine(String.Format("{0,3}", now));
  5.  
  6.             Console.WriteLine("\nМатрица: ");
  7.  
  8.             //выводим матрицу в консоль
  9.             for (int i = 0; i < n; i++) {
  10.                 for (int j = 0; j < m; j++) {
  11.                     Console.Write(String.Format("{0,3}", matrix[i, j]));
  12.                 }
  13.                 Console.WriteLine();
  14.             }
  15.  
  16.             Console.WriteLine("\nРасширенная матрица: ");
  17.  
  18.             //выводим расширенную матрицу в консоль
  19.             for (int i = 0; i < n; i++) {
  20.                 for (int j = 0; j < m; j++) {
  21.                     Console.Write(String.Format("{0,3}", matrix[i, j]));
  22.                 }
  23.                 Console.Write($" | { free[0,i]}");
  24.                 Console.WriteLine();
  25.             }
  26.  
  27.             //нахождение определителя
  28.             int mD = m + m - 1;
  29.             int [,] det = new int[n, mD];
  30.  
  31.             //создание матрицы расширенной
  32.             for (int i = 0; i < n; i++) {
  33.                 for (int j = 0; j < m; j++) {
  34.                     det[i, j] = matrix[i, j];
  35.                 }
  36.             }
  37.             for (int i = 0; i < n; i++) {
  38.                 for (int j = m, mj = 0; j < mD && mj < m; j++, mj++) {
  39.                     det[i, j] = matrix[i, mj];
  40.                 }
  41.             }
  42.             //------------------------------------
  43.  
  44.             //вычисление определителя по методу Саррюса
  45.             int res = 0, localRes = 1;
  46.             for (int p = 0; p<3; p++) {            
  47.                 for (int i = 0, j = p; i < n && j < m+p; i++, j++) {
  48.                     localRes *= det[i, j];
  49.                 }
  50.                 res += localRes;
  51.                 localRes = 1;
  52.             }
  53.  
  54.             for (int p = 0; p<3; p++) {            
  55.                 for (int i = 0, j = mD-1; i < n && j >=m-1; i++, j--) {
  56.                     localRes *= det[i, j-p];
  57.                 }
  58.                 res -= localRes;
  59.                 localRes = 1;
  60.             }
  61.             Console.WriteLine($"\nОпределитель матрицы равен: {res} \n");
  62.  
  63.             Console.WriteLine("Матрица определителя:");
  64.             for (int i = 0; i < n; i++) {
  65.                 for (int j = 0; j < mD; j++) {
  66.                     Console.Write(String.Format("{0,3}", det[i, j]));
  67.                 }
  68.                 Console.WriteLine();
  69.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement