В данную программу добавить код чтоб считался определитель квадратной матрицы - C#
Формулировка задачи:
Листинг программы
- Console.Write("Введите размер квадратной матрицы ");
- int n = Convert.ToInt32(Console.ReadLine());
- while (n <= 0)
- {
- Console.WriteLine("неверный размер!");
- n = Convert.ToInt32(Console.ReadLine());
- }
- int[,] a = new int[n, n];
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- Console.WriteLine("Введите {0}-ую строку, {1}-й элемент", i + 1, j + 1);
- a[i, j] = Convert.ToInt32(Console.ReadLine());
- }
- }
- Console.WriteLine();
- for (int i = 0; i < n; ++i)
- {
- for (int j = 0; j < n; j++)
- {
- Console.Write(a[i, j] + "\t");
- }
- Console.WriteLine();
- }
- Console.ReadLine();
Решение задачи: «В данную программу добавить код чтоб считался определитель квадратной матрицы»
textual
Листинг программы
- if (a.GetLength(0) != a.GetLength(1)) throw new Exception(" Число строк в матрице не совпадает с числом столбцов");
- double det = 0;
- int Rank = a.GetLength(0);
- if (Rank == 1) det = a[0, 0];
- if (Rank == 2) det = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
- if (Rank > 2)
- {
- for (int j = 0; j < a.GetLength(1); j++)
- {
- det += Math.Pow(-1,0+j)*a[0, j] * Determ(GetMinor(a, 0, j));
- }
- }
- //Вот такой метод нужно добавить в класс
- public static double[,] GetMinor(int[,] matrix, int row, int column)
- {
- if (matrix.GetLength(0) != matrix.GetLength(1)) throw new Exception(" Число строк в матрице не совпадает с числом столбцов");
- int[,] buf = new int[matrix.GetLength(0)-1,matrix.GetLength(0)-1];
- for (int i=0;i<matrix.GetLength(0);i++)
- for (int j=0;j<matrix.GetLength(1);j++)
- {
- if ((i!=row) || (j!=column))
- {
- if (i > row && j < column) buf[i - 1, j] = matrix[i, j];
- if (i < row && j > column) buf[i, j - 1] = matrix[i, j];
- if (i > row && j > column) buf[i - 1, j - 1] = matrix[i,j];
- if (i < row && j < column) buf[i, j] = matrix[i, j];
- }
- }
- return buf;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д