В данную программу добавить код чтоб считался определитель квадратной матрицы - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. Console.Write("Введите размер квадратной матрицы ");
  2. int n = Convert.ToInt32(Console.ReadLine());
  3. while (n <= 0)
  4. {
  5. Console.WriteLine("неверный размер!");
  6. n = Convert.ToInt32(Console.ReadLine());
  7. }
  8. int[,] a = new int[n, n];
  9. for (int i = 0; i < n; i++)
  10. {
  11. for (int j = 0; j < n; j++)
  12. {
  13. Console.WriteLine("Введите {0}-ую строку, {1}-й элемент", i + 1, j + 1);
  14. a[i, j] = Convert.ToInt32(Console.ReadLine());
  15. }
  16. }
  17. Console.WriteLine();
  18. for (int i = 0; i < n; ++i)
  19. {
  20. for (int j = 0; j < n; j++)
  21. {
  22. Console.Write(a[i, j] + "\t");
  23. }
  24. Console.WriteLine();
  25. }
  26. Console.ReadLine();

Решение задачи: «В данную программу добавить код чтоб считался определитель квадратной матрицы»

textual
Листинг программы
  1.             if (a.GetLength(0) != a.GetLength(1)) throw new Exception(" Число строк в матрице не совпадает с числом столбцов");
  2.             double det = 0;
  3.             int Rank = a.GetLength(0);
  4.             if (Rank == 1) det = a[0, 0];
  5.             if (Rank == 2) det = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
  6.             if (Rank > 2)
  7.             {
  8.                 for (int j = 0; j < a.GetLength(1); j++)
  9.                 {
  10.                     det += Math.Pow(-1,0+j)*a[0, j] * Determ(GetMinor(a, 0, j));
  11.                 }
  12.             }
  13. //Вот такой метод нужно добавить в класс
  14. public static double[,] GetMinor(int[,] matrix, int row, int column)
  15.         {
  16.             if (matrix.GetLength(0) != matrix.GetLength(1)) throw new Exception(" Число строк в матрице не совпадает с числом столбцов");
  17.             int[,] buf = new int[matrix.GetLength(0)-1,matrix.GetLength(0)-1];
  18.             for (int i=0;i<matrix.GetLength(0);i++)
  19.                 for (int j=0;j<matrix.GetLength(1);j++)
  20.                 {
  21.                     if ((i!=row) || (j!=column))
  22.                     {
  23.                         if (i > row && j < column) buf[i - 1, j] = matrix[i, j];
  24.                         if (i < row && j > column) buf[i, j - 1] = matrix[i, j];
  25.                         if (i > row && j > column) buf[i - 1, j - 1] = matrix[i,j];
  26.                         if (i < row && j < column) buf[i, j] = matrix[i, j];
  27.                     }
  28.                 }
  29.             return buf;
  30.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы