Написать программу, производящую различные операции над матрицами - C#

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

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

Добрый вечер, необходимо написать программу, производящую различные операции над матрицами, есть код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace ConsoleApplication2
  5. {
  6. class matrix
  7. {
  8. int n;
  9. int[,] arr;
  10. public void enter()
  11. {
  12. Console.WriteLine("Введите размерность:\n");
  13. n = int.Parse(Console.ReadLine());
  14. arr = new int[n, n];
  15. for (int i = 0; i < n; i++)
  16. {
  17. for (int j = 0; j < n; j++)
  18. {
  19. Console.WriteLine("Введите " + i + " " + j + " элемент:");
  20. arr[i, j] = int.Parse(Console.ReadLine());
  21. }
  22. }
  23. }
  24. public void output()
  25. {
  26. for (int i = 0; i < n; i++)
  27. {
  28. for (int j = 0; j < n; j++)
  29. {
  30. Console.WriteLine("\nЭлемент " + i + " " + j + " равен:\n" + arr[i, j]);
  31. }
  32. }
  33. }
  34. public void addmat(matrix temp)
  35. {
  36. for (int i = 0; i < n; i++)
  37. {
  38. for (int j = 0; j < n; j++)
  39. {
  40. arr[i, j] = temp.arr[i, j] + arr[i, j];
  41. }
  42. }
  43. }
  44. public void multinum(int k)
  45. {
  46. for (int i = 0; i < n; i++)
  47. {
  48. for (int j = 0; j < n; j++)
  49. {
  50. arr[i, j] *= k;
  51. }
  52. }
  53. }
  54. public void multimat(matrix tmp)
  55. {
  56. int[,] temp1 = new int[n, n];
  57. for (int i = 0; i < n; i++)
  58. {
  59. for (int j = 0; j < n; j++)
  60. {
  61. temp1[i, j] = 0;
  62. }
  63. }
  64. for (int i = 0; i < n; i++)
  65. {
  66. for (int j = 0; j < n; j++)
  67. {
  68. for (int l = 0; l < n; l++)
  69. temp1[i, j] += arr[i, l] * tmp.arr[l, j];
  70. }
  71. }
  72. for (int i = 0; i < n; i++)
  73. {
  74. for (int j = 0; j < n; j++)
  75. {
  76. arr[i, j] = temp1[i, j];
  77. }
  78. }
  79. }
  80. public void transpon()
  81. {
  82. int[,] temp;
  83. temp = new int[n, n];
  84. for (int i = 0; i < n; i++)
  85. {
  86. for (int j = 0; j < n; j++)
  87. {
  88. temp[j, i] = arr[i, j];
  89. }
  90. }
  91. for (int i = 0; i < n; i++)
  92. {
  93. for (int j = 0; j < n; j++)
  94. {
  95. arr[i, j] = temp[i, j];
  96. }
  97. }
  98. }
  99. }
  100. class Program
  101. {
  102. static void Main(string[] args)
  103. {
  104. matrix A = new matrix(); A.enter();
  105. matrix B = new matrix(); B.enter();
  106. matrix C = new matrix(); C.enter();
  107. A.multinum(4);
  108. A.multimat(B);
  109. C.transpon();
  110. A.addmat(C);
  111. A.output();
  112. Console.ReadKey();
  113. }
  114. }
  115. }
Помогите пожалуйста дописать всего один метод для нахождения определителя квадратной матрицы, буду очень благодарен.

Решение задачи: «Написать программу, производящую различные операции над матрицами»

textual
Листинг программы
  1. double determ(double **b, int n, int m) //  функция поиска определителя
  2. {    
  3. //double **b - матрица исходная
  4.         double det = 0;
  5.         if(n == 1)
  6.         {
  7.             det = b[0][0];
  8.         }
  9.         else if(n == 2)
  10.         {
  11.             det = b[0][0]*b[1][1]-b[0][1]*b[1][0];
  12.         }
  13.         else
  14.         {
  15.             double ** matr=new double*[n-1];
  16.             for(int i=0;i<n;++i)
  17.                 {
  18.                     for(int j=0;j<n-1;++j)
  19.                         {
  20.                                 if(j<i)
  21.                                     matr[j]=b[j];
  22.                                 else
  23.                                     matr[j]=b[j+1];
  24.                         }
  25.                     det+=pow((double)-1, (i+j))*determ(matr, n-1, m-1)*b[i][n-1];
  26.                 }
  27.                 delete[] matr;
  28.         }
  29.         return det;
  30. }

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


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

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

12   голосов , оценка 4.167 из 5

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

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

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