Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа (1,08 МБ).docx
Скачиваний:
2
Добавлен:
17.09.2019
Размер:
1.14 Mб
Скачать
    1. Класс получения разности матрицы (Minus.Cs)

using System;

using System.Collections.Generic;

using System.Text;

using System.Windows;

namespace Матрица_1_0

{

class Minus

{

public void Min(Cache ch)

{

if (ch.c == ch.e)

{

if (ch.d == ch.f)

{

ch.g = ch.e;

ch.h = ch.f;

double[,] matr = new double[ch.g, ch.f];

for (int i = 0; i < ch.c; i++)

{

for (int j = 0; j < ch.d; j++)

{

matr[i, j] = (ch.matr1[i, j] - ch.matr2[i, j]);

}

}

ch.res = matr;

}

else

{

MessageBox.Show("Ошибка! Количество столбцов в матрицах не совпадает.");

}

}

else

{

MessageBox.Show("Ошибка! Количество строк в матрицах не совпадает.");

}

}

}

    1. Класс получения минора матрицы (Mab.Cs)

using System;

using System.Collections.Generic;

using System.Windows;

using System.Windows.Controls;

namespace Матрица_1_0

{

class Mab

{

public double Min(int ind, int a, int b, Cache ch)

{

double min = 0;

if (ind == 1)

{

double[,] vrem1 = new double[ch.c - 1, ch.d];

double[,] vrem2 = new double[ch.c - 1, ch.d-1];

if (a < ch.c && b < ch.d)

{

ch.g = ch.c-1;

ch.h = ch.d-1;

for (int i = 0; i < ch.c; i++)

{

for (int j = 0; j < ch.d; j++)

{

if (i<a)

{

vrem1[i,j]=ch.matr1[i,j];

}

if(i>a)

{

vrem1[i-1,j]=ch.matr1[i,j];

}

}

}

for (int i = 0; i < ch.c-1; i++)

{

for (int j = 0; j < ch.d; j++)

{

if (j < b)

{

vrem2[i, j] = vrem1[i, j];

}

if (j > b)

{

vrem2[i, j - 1] = vrem1[i, j];

}

}

}

ch.res = vrem2;

int z = 0;

int y = 0;

z = Math.DivRem((a+b), 2, out y);

Opr delta = new Opr();

if (y == 0)

{

min = delta.DetGauss(3, ch);

}

else

{

min = delta.DetGauss(3, ch)*(-1);

}

}

else

{

MessageBox.Show("Вы ввели число большее чем размер матрицы!");

}

}

if (ind == 2)

{

double[,] vrem1 = new double[ch.e - 1, ch.f];

double[,] vrem2 = new double[ch.e - 1, ch.f - 1];

if (a < ch.e || b < ch.f)

{

ch.g = ch.e - 1;

ch.h = ch.f - 1;

for (int i = 0; i < ch.e; i++)

{

for (int j = 0; j < ch.f; j++)

{

if (i < a)

{

vrem1[i, j] = ch.matr2[i, j];

}

if (i > a)

{

vrem1[i - 1, j] = ch.matr2[i, j];

}

}

}

for (int i = 0; i < ch.e - 1; i++)

{

for (int j = 0; j < ch.f; j++)

{

if (j < b)

{

vrem2[i, j] = vrem1[i, j];

}

if (j > b)

{

vrem2[i, j - 1] = vrem1[i, j];

}

}

}

ch.res = vrem2;

int z = 0;

int y = 0;

z = Math.DivRem((a + b), 2, out y);

Opr delta = new Opr();

if (y == 0)

{

min = delta.DetGauss(3, ch);

}

else

{

min = delta.DetGauss(3, ch) * (-1);

}

}

else

{

MessageBox.Show("Вы ввели число большее чем размер матрицы!");

}

}

return min;

}

}

}