1111// * Напишите программу для тестирования вашего класса
1212// Операторы + - * / *(int)
1313
14- #include < vector>
15- #include < iostream>
16- #include < cstdlib> // для exit()
17-
18- using namespace std ;
19-
20- unsigned int get_size (vector <vector <double >> arr) {
21- unsigned int size = arr.size ();
22- for (int i = 0 ; i < size; i++) {
23- if (arr[i].size () != size) {
24- return 0 ;
25- }
26- }
27- return size;
28- }
29-
30- class Matrix {
31- private:
32- vector <vector <double >> arr;
33-
34- public:
35- Matrix (unsigned int size = 1 , double def = 0 ) {
36- try {
37- if (size > 0 ) {
38- arr.resize (size);
39- for (int i = 0 ; i < size; i++) {
40- arr[i].resize (size);
41- if (def) {
42- fill (arr[i].begin (), arr[i].end (), def);
43- }
44- }
45- } else {
46- throw " Matrix is not square" ;
47- }
48- } catch (const char *s) {
49- cerr << " Error in class constructor: " << s << endl;
50- exit (1 );
51- }
52- }
53-
54- Matrix (vector <vector <double >> temp) : Matrix (get_size(temp)) {
55- arr = temp;
56- }
57-
58- const unsigned int size () {
59- return arr.size ();
60- }
61-
62- Matrix& set (unsigned int x, unsigned int y, double value) {
63- try {
64- if (x < arr.size () && y < arr.size ()) {
65- arr[y][x] = value;
66- } else {
67- throw " Invalid index" ;
68- }
69- } catch (const char *s) {
70- cerr << " Error in 'set' operator: " << s << endl;
71- exit (1 );
72- }
73- return *this ;
74- }
75-
76- Matrix& set (vector <vector <double >> temp) {
77- // TODO: сделать присваивание матрицы другого разера
78- try {
79- if (get_size (temp) == arr.size ()) {
80- arr = temp;
81- } else {
82- throw " Target matrix has different size" ;
83- }
84- } catch (const char *s) {
85- cerr << " Error in 'set' operator: " << s << endl;
86- exit (1 );
87- }
88- return *this ;
89- }
90-
91- Matrix& set (Matrix& m) {
92- this ->arr = m.arr ;
93- return *this ;
94- }
95-
96- double get (unsigned int x, unsigned int y) {
97- try {
98- if (x < arr.size () && y < arr.size ()) {
99- return arr[y][x];
100- } else {
101- throw " Invalid index" ;
102- }
103- } catch (const char *s) {
104- cerr << " Error in 'get' operator: " << s << endl;
105- exit (1 );
106- }
107- }
108-
109- void print () {
110- for (int y = 0 ; y < arr.size (); y++) {
111- for (int x = 0 ; x < arr[y].size (); x++)
112- cout << arr[y][x] << " " ;
113- cout << endl;
114- }
115- cout << endl;
116- }
117- };
14+ #include " matrix.h"
11815
11916int main () {
12017 Matrix m1;
@@ -228,4 +125,6 @@ int main() {
228125 // Error in 'get' operator: Invalid index
229126 cout << m10.get(10, 10) << " at 10, 10" << endl;
230127 */
128+
129+
231130}
0 commit comments