Не могу найти простейшую ошибку в методе Main - C#

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

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

Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication1
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. class Matrix {
  12. /// <summary>
  13. /// Поиск определителя матрицы
  14. /// </summary>
  15. /// <param name="matrix"></param>
  16. static public double GetDeterminant(double[,] matrix) {
  17. if (matrix.GetLength(0) != matrix.GetLength(1))
  18. throw new Exception("Матрица должна быть квадратной!");
  19. /// Если матрица 2Г—2, то возвращаем определитель по формуле Крамера
  20. if (matrix.GetLength(0) == 2)
  21. return matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0];
  22. int sign = 1;//Знак минора
  23. double result = 0;
  24. int j = 0;//Номер столбца, по которому раскладывается матрица
  25. for (int i = 0; i < matrix.GetLength(0); i++) {
  26. /// Если номер столбца и строки одновременно чётные, то
  27. /// знак будет «+», иначе — «-»
  28. sign = ((i + 1) % 2 == (j + 1) % 2) ? 1 : -1;
  29. result += sign * matrix[i, j] * GetDeterminant(GetMinorMatrix(matrix, i, j));
  30. }
  31. return result;
  32. }
  33. /// <summary>
  34. /// Метод для вычисления минорной матрицы для заданного элемента
  35. /// </summary>
  36. /// <param name="matrix">Исходная матрица</param>
  37. /// <param name="row">Номер строки</param>
  38. /// <param name="col">Номер столбца</param>
  39. static public double[,] GetMinorMatrix(double[,] matrix, int row, int col) {
  40. double[,] result = new double[matrix.GetLength(0) - 1, matrix.GetLength(1) - 1];
  41. int m = 0, k;
  42. for (int i = 0; i < matrix.GetLength(0); i++) {
  43. if (i == row) continue;
  44. k = 0;
  45. for (int j = 0; j < matrix.GetLength(1); j++) {
  46. if (j == col) continue;
  47. result[m, k++] = matrix[i, j];
  48. }
  49. m++;
  50. }
  51. return result;
  52. }
  53. }
  54. }
  55. }

Решение задачи: «Не могу найти простейшую ошибку в методе Main»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication1
  4. {
  5.     class Matrix
  6.     {
  7.         /// <summary>
  8.         /// Поиск определителя матрицы
  9.         /// </summary>
  10.         /// <param name="matrix"></param>
  11.         static public double GetDeterminant(double[,] matrix)
  12.         {
  13.             if (matrix.GetLength(0) != matrix.GetLength(1))
  14.                 throw new Exception("Матрица должна быть квадратной!");
  15.             /// Если матрица 2Г—2, то возвращаем определитель по формуле Крамера
  16.             if (matrix.GetLength(0) == 2)
  17.                 return matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0];
  18.             int sign = 1;//Знак минора
  19.             double result = 0;
  20.             int j = 0;//Номер столбца, по которому раскладывается матрица
  21.             for (int i = 0; i < matrix.GetLength(0); i++)
  22.             {
  23.                 /// Если номер столбца и строки одновременно чётные, то
  24.                 /// знак будет «+», иначе — «-»
  25.                 sign = ((i + 1) % 2 == (j + 1) % 2) ? 1 : -1;
  26.                 result += sign * matrix[i, j] * GetDeterminant(GetMinorMatrix(matrix, i, j));
  27.             }
  28.             return result;
  29.         }
  30.         /// <summary>
  31.         /// Метод для вычисления минорной матрицы для заданного элемента
  32.         /// </summary>
  33.         /// <param name="matrix">Исходная матрица</param>
  34.         /// <param name="row">Номер строки</param>
  35.         /// <param name="col">Номер столбца</param>
  36.         static public double[,] GetMinorMatrix(double[,] matrix, int row, int col)
  37.         {
  38.             double[,] result = new double[matrix.GetLength(0) - 1, matrix.GetLength(1) - 1];
  39.             int m = 0, k;
  40.             for (int i = 0; i < matrix.GetLength(0); i++)
  41.             {
  42.                 if (i == row) continue;
  43.                 k = 0;
  44.                 for (int j = 0; j < matrix.GetLength(1); j++)
  45.                 {
  46.                     if (j == col) continue;
  47.                     result[m, k++] = matrix[i, j];
  48.                 }
  49.                 m++;
  50.             }
  51.             return result;
  52.         }
  53.     }
  54.     class Program
  55.     {
  56.         static void Main(string[] args)
  57.         {
  58.         }
  59.     }
  60. }

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


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

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

10   голосов , оценка 3.8 из 5

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

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

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