Написать программу, производящую различные операции над матрицами - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д