Набор функций для работы с матрицей(Заготовка)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//////////////////////////////////////////////////////
//Зеркально отражение матрицы относительно побочной диагонали
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
if(i+j<m-1){
int temp=matrix[i][j];
matrix[i][j]= matrix[m-j-1][m-i-1];
matrix[m-j-1][m-i-1]=temp;
}
cout<<matrix[i][j];
}
cout<<endl;
}
//////////////////////////////////////////////////////
//Зеркальное отражение матрицы относительно горизонта матрицы
for(int i=0,t=n-1;i<n;i++,t--){
for(int j=0;j<m;j++){
if(i<m/2){
float temp=matrix[i][j];
matrix[i][j]=matrix[t][j];
matrix[t][j]=temp;
}
cout<<matrix[i][j];
}
cout<<endl;
}
//////////////////////////////////////////////////////
//Умножение матриц
matrix* multiplay(matrix *second)
{
if (m != second->n) {
cout << "Matrix NOT AVALABLE TO MULTY!";
cin.clear();
cin.sync();
cin.get();
return 0;
}
else {
matrix *result = new matrix(n, second->m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < second->m; j++)
{
result->Arr[i][j] = 0;
for (int k = 0; k <m; k++) {
result->Arr[i][j] += (Arr[i][k] * second->Arr[k][j]);
}
}
}
return result;
}
}
/////////////////////////////////////////////////////