C # клас матриця (додавання, віднімання, множення матриць) - блог олександра Тумовская

Даний клас дозволяє проводити деякі операції над матрицями:

  1. Додавання матриці А з матрицею Б
  2. Віднімання матриці Б з матриці А
  3. Множення матриці А на матрицю Б
  4. Множення матриця А на число
  5. Перевірка матриці А на одиничність
  6. Виконання нексолькіх операцій над матрицями одночасно, утворюючи матрицю D

Так само він містить оператори перевантаження і приховані поля для соблуденія інкапсуляції.

Мова програмування С #

using System;
using System. Collections. Generic;
using System. Linq;
using System. Text;
using System. Threading. Tasks;

namespace ConsoleApplication1
<
class Matrix
<
// Приховані поля
private int n;
private int [. ] Mass;

// Задаємо аксессор для роботи з полями поза класом Matrix
public Matrix (int n)
<
this. n = n;
mass = new int [this. n. this. n];
>
public int this [int i. int j]
<
get
<
return mass [i. j];
>
set
<
mass [i. j] = value;
>
>

// Введення матриці з клавіатури
public void WriteMat ()
<
for (int i = 0; i <
for (int j = 0; j <
Console. WriteLine ( "Введіть елемент матриці <0>. <1> ". I + 1. j + 1);
mass [i. j] = Convert. ToInt32 (Console. ReadLine ());
>
>
>

// Висновок матриці з клавіатури
public void ReadMat ()
<
for (int i = 0; i <
for (int j = 0; j <
Console. Write (mass [i. J] + "\ t");
>
Console. WriteLine ();
>
>


// Перевірка матриці А на одиничність
public void oneMat (Matrix a)<
int count = 0;
for (int i = 0; i <
for (int j = 0; j <
if (a [i. j] == 1 i == j)
<
count ++;
>
>

>
if (count == a. N)
<
Console. WriteLine ( "Єдина");
>
else Console. WriteLine ( "Не одинична");
>


// Множення матриці А на число
public static Matrix umnch (Matrix a. int ch)
<
Matrix resMass = new Matrix (a. N);
for (int i = 0; i <
for (int j = 0; j <
resMass [i. j] = a [i. j] * ch;
>
>
return resMass;
>

// Множення матриці А на матрицю Б
public static Matrix umn (Matrix a. Matrix b)
<
Matrix resMass = new Matrix (a. N);
for (int i = 0; i for (int j = 0; j for (int k = 0; k resMass [i. j] + = a [i. k] * b [k. j];

// перевантаження оператора множення
public static Matrix operator * (Matrix a. Matrix b)
<
return Matrix. umn (a. b);
>

public static Matrix operator * (Matrix a. int b)
<
return Matrix. umnch (a. b);
>


// Метод вирахування матриці Б з матриці А
public static Matrix razn (Matrix a. Matrix b)
<
Matrix resMass = new Matrix (a. N);
for (int i = 0; i <
for (int j = 0; j <
resMass [i. j] = a [i. j] - b [i. j];
>
>
return resMass;
>

// Перевантаження оператора вирахування
public static Matrix operator - (Matrix a. Matrix b)
<
return Matrix. razn (a. b);
>
public static Matrix Sum (Matrix a. Matrix b)
<
Matrix resMass = new Matrix (a. N);
for (int i = 0; i <
for (int j = 0; j <
resMass [i. j] = a [i. j] + b [i. j];
>
>
return resMass;
>
// Перевантаження складання
public static Matrix operator + (Matrix a. Matrix b)
<
return Matrix. Sum (a. B);
>
// Деструкція Matrix

Matrix ()
<
Console. WriteLine ( "Очищення");
>

static void Main (string [] args)
<
Console. WriteLine ( "Введіть розмірність матриці.");
int nn = Convert. ToInt32 (Console. ReadLine ());
// Ініціалізація
Matrix mass1 = new Matrix (nn);
Matrix mass2 = new Matrix (nn);
Matrix mass3 = new Matrix (nn);
Matrix mass4 = new Matrix (nn);
Matrix mass5 = new Matrix (nn);
Matrix mass6 = new Matrix (nn);
Matrix mass7 = new Matrix (nn);
Matrix mass8 = new Matrix (nn);
Console. WriteLine ( "введення Матриця А.");
mass1. WriteMat ();
Console. WriteLine ( "Введення Матриця B.");
mass2. WriteMat ();

Console. WriteLine ( "Матриця А.");
mass1. ReadMat ();
Console. WriteLine ();
Console. WriteLine ( "Матриця В.");
Console. WriteLine ();
mass2. ReadMat ();

Console. WriteLine ( "Додавання матриць А і Б.");
mass4 = (mass1 + mass2);
mass4. ReadMat ();

Console. WriteLine ( "Віднімання матриць А і Б.");
mass6 = (mass1 - mass2);
mass6. ReadMat ();

Console. WriteLine ( "Множення матриць А і Б.");
mass8 = (mass1 * mass2);
mass8. ReadMat ();

Console. WriteLine ( "Множення матриці А на число 2.");
mass5 = (mass1 * 2);
mass5. ReadMat ();

Console. WriteLine ( "Матриця D за формулою D = 3AB + (A - B) A.");
mass7 = ((mass1 * 3) * mass2 + (mass1 - mass2) * mass1);
mass7. ReadMat ();