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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
| #include <iostream>
#include <locale.h> //отвечает за локализацию
#include <iomanip>
#include "stdafx.h"
int mat1[3][3];
int mat2[3][3];
int mat3[3][3];
int mat4[3][3];
int mat5[3][3];
int vec1[3];
int vec2[3];
int vec3[3];
int vec4[3];
int vec5;
int mum(int mat1[3][3], int mat2[3][3], int mat3[3][3]) // Матрица1 * Матрица2
{
setlocale(LC_ALL, "Rus");//setlocale- задаёт локализацию программы. По умолчанию это только английский язык.
//LC_ALL- указывает программе, что локализированы будут все функции.
//“Rus”- говорит о том, что локализация произойдёт на русский язык.
std::cout << " Ввод элементов матрицы 1 (3x3): " << std::endl;
for (int i = 0; i<3; i++) //Цикл по переменной i, перебираем строки матрицы
for (int j = 0; j<3; j++) //Цикл по переменной j, перебираем элементы внутри строки
std::cin >> mat1[i][j]; //Ввод очередного элемента матрицы
std::cout << std::endl;
std::cout << " Ввод элементов матрицы 2 (3x3): " << std::endl;
for (int i = 0; i<3; i++) //Цикл по переменной i, перебираем строки матрицы
for (int j = 0; j<3; j++) //Цикл по переменной j, перебираем элементы внутри строки
std::cin >> mat2[i][j]; //Ввод очередного элемента матрицы
std::cout << std::endl;
std::cout << " Ввод элементов вектора 1 (3-эл): " << std::endl;
for (int i = 0; i < 3; i++) { //Цикл по переменной i, перебираем элементов вектора
std::cin >> vec1[i]; //Ввод очередного элемента вектора
}
std::cout << std::endl;
std::cout << " Ввод элементов вектора 2 (3-эл): " << std::endl;
for (int i = 0; i < 3; i++) { //Цикл по переменной i, перебираем элементов вектора
std::cin >> vec2[i]; //Ввод очередного элемента вектора
}
std::cout << std::endl;
std::cout << " mat1 * mat2 = mat3 :" << std::endl;
std::cout << " ------------------------- " << std::endl;
for (int i = 0; i <3; i++)
{
for (int j = 0; j < 3; j++)
{
for (int k = 0; k < 3; k++)
{
mat3[i][j] = mat3[i][j] + mat1[i][k] * mat2[k][j];
}
}
}
return 0;
}
int muv(int mat1[3][3], int vec1[3], int mat4[3][3]) // Матрица1 * Вектор1
{
std::cout << " \n " << " mat1 * vec1 = mat4 : " << " \n ";
std::cout << " ------------------------- " << std::endl;
int s = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
for (int k = 0; k < 3; k++)
{
s = s + mat1[i][k];
}
mat4[i][j] = s*vec1[j];
s = 0;
}
}
return 0;
}
int mpm(int mat1[3][3], int mat2[3][3], int mat5[3][3]) // Матрица1 + Матрица2
{
std::cout << " \n " << " mat1 + mat2 = mat5 :" << " \n ";
std::cout << " ------------------------- " << std::endl;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
mat5[i][j] = mat1[i][j] + mat2[i][j];
}
}
return 0;
}
int vpv(int vec1[3], int vec2[3], int vec3[3]) // Вектор1 + Вектор2
{
std::cout << " \n " << " vec1 + vec2 = vec3 :" << " \n ";
std::cout << " ------------------------- " << std::endl;
for (int i = 0; i < 3; i++)
{
vec3[i] = vec1[i] + vec2[i];
}
return 0;
}
int vuv1(int vec1[3], int vec2[3], int vec4[3]) // Вектор * Вектор (векторный)
{
std::cout << " \n " << " \n " << " (vec) vec1 * vec2 = vec4 :" << " \n ";
std::cout << " ------------------------- " << std::endl;
vec4[0] = (vec1[1] * vec2[2]) - (vec2[1] * vec1[2]);
vec4[1] = (vec1[0] * vec2[2]) - (vec2[0] * vec1[2]);
vec4[2] = (vec1[0] * vec2[1]) - (vec2[0] * vec1[1]);
return 0;
}
int vuv2(int vec1[3], int vec2[3], int &vec5) // Вектор * Вектор (скалярный)
{
std::cout << " \n " << " \n " << " (scal) vec1 * vec2 = vec5 :" << " \n ";
std::cout << " ------------------------- " << std::endl;
for (int i = 0; i < 3; i++)
{
vec5 = vec5 + (vec1[i] * vec2[i]);
}
return 0;
}
int main()
{
// Вывод Матрица1 * Матрица2 :
mum(mat1, mat2, mat3);
for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { std::cout << " " << mat3[i][j] << " \t "; }std::cout << " \n"; }
// Вывод Матрица1 * Вектор1 :
muv(mat1, vec1, mat4);
for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { std::cout << " " << mat4[i][j] << " \t "; }std::cout << " \n"; }
// Вывод Матрица1 + Матрица2 :
mpm(mat1, mat2, mat5);
for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { std::cout << " " << mat5[i][j] << " \t "; }std::cout << " \n"; }
// Вывод Вектор1 + Вектор2 :
vpv(vec1, vec2, vec3);
for (int i = 0; i < 3; i++) { std::cout << " " << vec3[i] << " \t "; }
// Вывод Вектор * Вектор (векторный) :
vuv1(vec1, vec2, vec4);
for (int i = 0; i < 3; i++) { std::cout << " " << vec4[i] << " \t "; }
// Вывод Вектор * Вектор (скалярный) :
vuv2(vec1, vec2, vec5);
std::cout << " " << vec5 << std::endl;
system("pause");
return 0;
} |