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

using System;

using System.Text;

using System.IO;

using System.Windows;

using Microsoft.Win32;

namespace Матрица_1_0

{

class WR

{

public void Save(Cache ch)

{

SaveFileDialog save = new SaveFileDialog();

save.InitialDirectory = "c:\\";

save.Filter = "matr files (*.matr)|*.matr|All files (*.*)|*.*";

save.FilterIndex = 1;

save.RestoreDirectory = true;

if (save.ShowDialog() == true)

{

string[] zap = new string[ch.g+1];

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

{

string add=null;

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

{

if (i == 0)

{

add = ch.name2 + " " + ch.fam2;

}

else

{

if (j == ch.h - 1)

{

add += ch.res[i - 1, j].ToString();

}

else

{

add += (ch.res[i - 1, j].ToString() + " ");

}

}

}

zap[i] = add;

}

Encoding en=Encoding.GetEncoding(1251);

File.WriteAllLines(save.FileName, zap, en);

}

}

}

}

    1. Класс произведения матриц (Umn.Cs)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

namespace Матрица_1_0

{

class Umn

{

public void Umn2(Cache ch)

{

if (ch.d == ch.e)

{

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

ch.g = ch.c;

ch.h = ch.f;

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

{

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

{

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

{

matr[i, j] += ch.matr1[i, k] * ch.matr2[k, j];

}

}

}

ch.res = matr;

}

else

{

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

}

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

{

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

{

ch.res[i, j] = Math.Round(ch.res[i, j]);

}

}

}

}

}

    1. Класс сложения матриц (Plus.Cs)

using System;

using System.Windows;

namespace Матрица_1_0

{

class Plus

{

public void Sum(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("Ошибка! Количество строк в матрицах не совпадает.");

}

}

}

}