Написать программу, производящую различные операции над матрицами - C#
Формулировка задачи:
Добрый вечер, необходимо написать программу, производящую различные операции над матрицами, есть код:
Помогите пожалуйста дописать всего один метод для нахождения определителя квадратной матрицы, буду очень благодарен.
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2 { class matrix { int n; int[,] arr; public void enter() { Console.WriteLine("Введите размерность:\n"); n = int.Parse(Console.ReadLine()); arr = new int[n, n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.WriteLine("Введите " + i + " " + j + " элемент:"); arr[i, j] = int.Parse(Console.ReadLine()); } } } public void output() { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.WriteLine("\nЭлемент " + i + " " + j + " равен:\n" + arr[i, j]); } } } public void addmat(matrix temp) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { arr[i, j] = temp.arr[i, j] + arr[i, j]; } } } public void multinum(int k) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { arr[i, j] *= k; } } } public void multimat(matrix tmp) { int[,] temp1 = new int[n, n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { temp1[i, j] = 0; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int l = 0; l < n; l++) temp1[i, j] += arr[i, l] * tmp.arr[l, j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { arr[i, j] = temp1[i, j]; } } } public void transpon() { int[,] temp; temp = new int[n, n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { temp[j, i] = arr[i, j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { arr[i, j] = temp[i, j]; } } } } class Program { static void Main(string[] args) { matrix A = new matrix(); A.enter(); matrix B = new matrix(); B.enter(); matrix C = new matrix(); C.enter(); A.multinum(4); A.multimat(B); C.transpon(); A.addmat(C); A.output(); Console.ReadKey(); } } }
Решение задачи: «Написать программу, производящую различные операции над матрицами»
textual
Листинг программы
double determ(double **b, int n, int m) // функция поиска определителя { //double **b - матрица исходная double det = 0; if(n == 1) { det = b[0][0]; } else if(n == 2) { det = b[0][0]*b[1][1]-b[0][1]*b[1][0]; } else { double ** matr=new double*[n-1]; for(int i=0;i<n;++i) { for(int j=0;j<n-1;++j) { if(j<i) matr[j]=b[j]; else matr[j]=b[j+1]; } det+=pow((double)-1, (i+j))*determ(matr, n-1, m-1)*b[i][n-1]; } delete[] matr; } return det; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д