C # matrice de clasă (adăugare, scădere, multiplicare de matrice) - blogul lui Alexandr Tumovsky

Această clasă vă permite să efectuați anumite operații pe matrice:

  1. Adăugarea matricei A la matricea B
  2. Subtracția matricei B din matricea A
  3. Înmulțirea matricei A cu matricea B
  4. Înmulțirea matricei A cu numărul
  5. Verificarea matricei A pentru unitate
  6. Efectuarea operațiunilor non-maximale pe matrice simultan, formarea matricei D

De asemenea, conține operatori de suprasarcină și câmpuri ascunse pentru încapsulare.

C # limba de programare

utilizând Sistemul;
utilizând sistemul. Colecții. Generic;
utilizând sistemul. LINQ;
utilizând sistemul. Text;
utilizând sistemul. Threading. sarcini;

namespace ConsoleApplication1
<
clasa Matrix
<
// Câmpuri ascunse
private int n;
private int [. ] masa;

// Setați accesoriile pentru a lucra cu câmpurile din afara clasei Matrix
matricea publică (int n)
<
acest lucru. n = n;
mass = new int [this. n. acest lucru. n];
>
public int [int i. int j]
<
obține
<
retur mase [i. j];
>
set
<
masa [i. j] = valoare;
>
>

// Introduceți matricea de pe tastatură
public void WriteMat ()
<
pentru (int i = 0; i <
pentru (int j = 0; <
Console. WriteLine ("Introduceți un element de matrice <0>. <1> "i + 1. j + 1);
masa [i. j] = Conversie. ToInt32 (Console.readLine ());
>
>
>

// Afișați matricea de pe tastatură
public void ReadMat ()
<
pentru (int i = 0; i <
pentru (int j = 0; <
Console. Scrieți (masa [i. J] + "\ t");
>
Console. WriteLine ();
>
>


// Verificați matricea A pentru singularitate
public void oneMat (Matrix a)<
int count = 0;
pentru (int i = 0; i <
pentru (int j = 0; <
dacă (a [i. j] == 1 i == j)
<
numărătoarea ++;
>
>

>
dacă (count == a. N)
<
Console. WriteLine ("Single");
>
altfel Consola. WriteLine ("Nu este unică");
>


// Multiplicarea matricei A cu numărul
public static Matrix umnch (Matrix a.int ch)
<
Matrix resMass = Matrice nouă (a.N);
pentru (int i = 0; i <
pentru (int j = 0; <
resMass [i. j] = a [i. j] * ch;
>
>
întoarcere resMass;
>

// Multiplicarea matricei A prin matricea B
public static Matrix umn (Matrix a.Matrix b)
<
Matrix resMass = Matrice nouă (a.N);
pentru (int i = 0; i pentru (int j = 0; pentru (int k = 0; k resMass [i. j] + = a [i. k] * b [k. j];

// reîncărcați operatorul de multiplicare
operatorul public static Matrix * (Matrix a. Matrix b)
<
returnează Matrix. umn (a.b);
>

operatorul public static Matrix * (Matrix a. int b)
<
returnează Matrix. umnch (a.b);
>


Metoda de scădere a matricei B din matricea A
statica publica Matrix razn (Matrix a Matrix b)
<
Matrix resMass = Matrice nouă (a.N);
pentru (int i = 0; i <
pentru (int j = 0; <
resMass [i. j] = a [i. j] - b [i. j];
>
>
întoarcere resMass;
>

// Supraîncărcarea operatorului de scădere
operatorul public static Matrix - (Matrix a.Matrix b)
<
returnează Matrix. razn (a.b);
>
Suma statică publică Matrix (Matrix a Matrix b)
<
Matrix resMass = Matrice nouă (a.N);
pentru (int i = 0; i <
pentru (int j = 0; <
resMass [i. j] = a [i. j] + b [i. j];
>
>
întoarcere resMass;
>
// Suprasolicitarea suplimentară
operatorul public static Matrix + (Matrix a. Matrix b)
<
returnează Matrix. Suma (a.b);
>
// Destructor Matrix

Matricea ()
<
Console. WriteLine ("Curățenie");
>

static void Principal (șir [] args)
<
Console. WriteLine ("Introduceți dimensiunea matricei");
int nn = Conversie. ToInt32 (Console.readLine ());
// Initializeaza
Matricea matricei1 = noua matrice (nn);
Matricea matrice2 = matricea nouă (nn);
Matricea matricei3 = matricea nouă (nn);
Matricea matricei4 = matricea nouă (nn);
Matricea matricei5 = noua matrice (nn);
Matricea matricei6 = matricea nouă (nn);
Matricea matrice7 = matricea nouă (nn);
Matricea matricei8 = noua matrice (nn);
Console. WriteLine ("Introduceți Matricea A.");
mass1. WriteMat ();
Console. WriteLine ("Introduceți Matrice B.");
mass2. WriteMat ();

Console. WriteLine ("Matricea A.");
mass1. ReadMat ();
Console. WriteLine ();
Console. WriteLine ("Matricea B.");
Console. WriteLine ();
mass2. ReadMat ();

Console. WriteLine ("Adăugarea matricelor A și B");
masa4 = (masa1 + masa2);
mass4. ReadMat ();

Console. WriteLine ("Extragerea matricelor A și B");
masa6 = (masa1 - masa2);
mass6. ReadMat ();

Console. WriteLine ("Înmulțirea matricelor A și B");
masa8 = (mas1 * masa2);
mass8. ReadMat ();

Console. WriteLine ("Înmulțirea matricei A cu numărul 2.");
masa5 = (masa1 * 2);
mass5. ReadMat ();

Console. WriteLine ("Matricea D prin formula D = 3AB + (A - B) A.");
masa7 = ((masa1 * 3) * masa2 + (masa1 - masa2) * masa1);
mass7. ReadMat ();