Форум программистов, компьютерный форум CyberForum.ru

Matrix. Комментарии к программе - C++

Восстановить пароль Регистрация
 
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
13.05.2012, 11:45     Matrix. Комментарии к программе #1
Всем доброго дня!!!!
Не могли бы вы мне помочь, написать комментарии к программе?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2012, 11:45     Matrix. Комментарии к программе
Посмотрите здесь:

C++ Комментарии к программе
Комментарии к программе C++
комментарии к программе C++
Напишите комментарии к программе C++
Пользовательский интерфейс к программе с Matrix C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
13.05.2012, 11:52     Matrix. Комментарии к программе #2
Ну, вы бы тогда и программу уже писали...
И еще, если вам известно, для чего она в целом, то это тоже напишите.
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
13.05.2012, 12:02  [ТС]     Matrix. Комментарии к программе #3
Цитата Сообщение от UFO94 Посмотреть сообщение
Ну, вы бы тогда и программу уже писали...
И еще, если вам известно, для чего она в целом, то это тоже напишите.
Создать класс Matrix, содержащий следующие элементы:
- поле «размер» Size s;
- поле «данные» int Data[s.Raw, s.Column];
- метод получения кол-во строк int GetRaw();
- метод получения кол-во столбцов int GetColumn();
- метод получения значения ячейки int GetValue(int i, int j);
- конструктор с параметрами Matrix(Size s, int InitialValue);
Создать класс Size, содержащий элементы:
- поле «кол-во строк» int Raw;
- поле «кол-во столбцов» int Column;
- конструктор с параметрами Size(int Raw, int Column);
В классе Matrix перегрузить оператор ++
C++
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include "Size.cpp"
 
using namespace std;
 
 
class Matrix {
    Size sz;
    int **values;
 
public:
 
    Matrix(Size s, int value) {
        sz = s;
        init_matrix(value);
    }
    ~Matrix() {
        delete [] values;
    }
 
    void init_matrix(int value = 0) {
        
        try {
            values = new int*[sz.get_row()];
        } catch(bad_alloc xa) {
            exit(1);
        }
        int i;
        for(i = 0; i < sz.get_row(); i++) {
            try {
            values[i] = new int[sz.get_column()];
            } catch(bad_alloc xa) {
                exit(1);
            }
        }
        srand(time(0));
        for(i = 0; i < sz.get_row(); i++) {
            for(int j = 0; j < sz.get_column(); j++) {
                values[i][j]= rand()%20;
            }
        }
    }
 
    int get_rows() {
        return sz.get_row();
    }
    int get_columns() {
        return sz.get_column();
    }
    int get_value(int i, int j) {
        if(i < 0 || i >= sz.get_row()) return 0;
        if(j < 0 || j >= sz.get_column()) return 0;
        return values[i][j];
    }
    Matrix operator++() {
        for(int i = 0; i < sz.get_row(); i++) {
            for(int j = 0; j < sz.get_column(); j++) {
                values[i][j]++;
            }
        }
        return *this;
    }
 
    Matrix(const Matrix& copy) {
        sz = copy.sz;
        try {
            values = new int*[sz.get_row()];
        } catch(bad_alloc xa) {
            exit(1);
        }
 
        for(int i = 0; i < sz.get_row(); i++) {
            try {
                values[i] = new int[sz.get_column()];
            } catch(bad_alloc xa) {
                exit(1);
            }
 
            for(int j = 0; j < sz.get_column(); j++) {
                values[i][j] = copy. values[i][j] ;
            }
        }
    }
 
    Matrix& operator = (const Matrix& Copy){
        if (&Copy==this) return *this;
        int i;
        for(i = 0; i < sz.get_row(); i++) {
            delete[] values[i];
        }
 
        delete[] values;
        sz = Copy.sz;
            
        try {
            values = new int*[sz.get_row()];
        } catch(bad_alloc xa) {
            exit(1);
        }
 
        for(i = 0; i < sz.get_row(); i++) {
            try {
                values[i] = new int[sz.get_column()];
            } catch(bad_alloc xa) {
                exit(1);
            }
            for(int j = 0; j < sz.get_column(); j++) {
                values[i][j] = Copy. values[i][j] ;
            }
        }
        return *this;
    }
};
 
void main(int argc, char *argv[]) {
    
    Size sz(5, 5);
    Matrix m(sz, 12);
    //++m;
    char c;
    setlocale(LC_ALL, "Russian");
    while (1>0)
    {
        system("cls");
        cout << "Codepganue menu:\n";
        cout << "1. vetod nolychenuya kol-va ctpok int GetRaw();\n";
        cout << "2. metod nolychenuya kol-va ctolbcov int GetColumn();\n";
        cout << "3. metod nolychenuya znachenuya yacheuku int GetValue(int i, int j)\n";
        cout << "4. Matrix+nepegpyzka\n";
        cout << "5. Exit\n";
        cout << "Vesti nynkt menu->";
        cin>>c;
        switch(c)
        {
        case '1':
            cout<<sz.get_row()<<endl;
            system("pause");
            break;
        case '2':
            cout<<sz.get_column()<<endl;
            system("pause");
            break;
        case '3':
            int i, j;
            cout<<"Введите i: ";
            cin>>i;
            cout<<"Введите j: ";
            cin>>j;
 
            cout<<m.get_value(i, j)<<endl;
            system("pause");
 
            break;
        case '4':
cout << "ucxodnaya matrix\n";
            for(i = 0; i < sz.get_row(); i++) {
                for(int j = 0; j < sz.get_column(); j++) {
                    cout << m.get_value(i, j) << "\t";
                }
                cout << endl;
            }
            cout<<endl;
            ++m;
cout << "nepegrygenaya matrix\n";
            for(i = 0; i < sz.get_row(); i++) {
                for(int j = 0; j < sz.get_column(); j++) {
                    cout << m.get_value(i, j) << "\t";
                }
                cout << endl;
            }
            system("pause");
            break;
        case '5':
            return;
            break;
        }
    }
 
    system("pause");
}
Size.cpp
C++
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
 
class Size {
    int column;
    int row;
    
public:
    Size() {
        column = 1;
        row = 1;
    }
 
    Size(int i, int j) {
        column = i;
        row = j;
    }
 
    void set(int i, int j) {
        column = i;
        row = j;
    }
 
    int get_column() {
        return column;
    }
 
    int get_row() {
        return row;
    }
};
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
13.05.2012, 12:27     Matrix. Комментарии к программе #4
C++
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include "Size.cpp"
 
using namespace std;
 
 
class Matrix {
    Size sz;
    int **values;
 
public:
 
    Matrix(Size s, int value) {//Конструктор, заполняющий матрицу случайными числами (вроде так?)
        sz = s;
        init_matrix(value);
    }
    ~Matrix() {//Деструктор
        delete [] values;
    }
 
    void init_matrix(int value = 0) {
        
        try {
            values = new int*[sz.get_row()];
        } catch(bad_alloc xa) {
            exit(1);
        }
        int i;
        for(i = 0; i < sz.get_row(); i++) {
            try {
            values[i] = new int[sz.get_column()];
            } catch(bad_alloc xa) {
                exit(1);
            }
        }
        srand(time(0));
        for(i = 0; i < sz.get_row(); i++) {
            for(int j = 0; j < sz.get_column(); j++) {
                values[i][j]= rand()%20;
            }
        }
    }
 
    int get_rows() {//Метод получения количества строк матрицы
        return sz.get_row();
    }
    int get_columns() {//Метод получения количества столбцов матрицы
        return sz.get_column();
    }
    int get_value(int i, int j) {//Метод получения элемента [i;j] матрицы
        if(i < 0 || i >= sz.get_row()) return 0;
        if(j < 0 || j >= sz.get_column()) return 0;
        return values[i][j];
    }
    Matrix operator++() {//Оператор инкремента: увеличение на 1 каждого элемента матрицы
        for(int i = 0; i < sz.get_row(); i++) {
            for(int j = 0; j < sz.get_column(); j++) {
                values[i][j]++;
            }
        }
        return *this;
    }
 
    Matrix(const Matrix& copy) {//Конструктор копий
        sz = copy.sz;
        try {
            values = new int*[sz.get_row()];
        } catch(bad_alloc xa) {
            exit(1);
        }
 
        for(int i = 0; i < sz.get_row(); i++) {
            try {
                values[i] = new int[sz.get_column()];
            } catch(bad_alloc xa) {
                exit(1);
            }
 
            for(int j = 0; j < sz.get_column(); j++) {
                values[i][j] = copy. values[i][j] ;
            }
        }
    }
 
    Matrix& operator = (const Matrix& Copy){//Оператор =
        if (&Copy==this) return *this;
        int i;
        for(i = 0; i < sz.get_row(); i++) {
            delete[] values[i];
        }
 
        delete[] values;
        sz = Copy.sz;
            
        try {
            values = new int*[sz.get_row()];
        } catch(bad_alloc xa) {
            exit(1);
        }
 
        for(i = 0; i < sz.get_row(); i++) {
            try {
                values[i] = new int[sz.get_column()];
            } catch(bad_alloc xa) {
                exit(1);
            }
            for(int j = 0; j < sz.get_column(); j++) {
                values[i][j] = Copy. values[i][j] ;
            }
        }
        return *this;
    }
};
 
void main(int argc, char *argv[]) {
    
    Size sz(5, 5);
    Matrix m(sz, 12);
    //++m;
    char c;
    setlocale(LC_ALL, "Russian");
    while (1>0)
    {
        system("cls");
        cout << "Codepganue menu:\n";
        cout << "1. vetod nolychenuya kol-va ctpok int GetRaw();\n";
        cout << "2. metod nolychenuya kol-va ctolbcov int GetColumn();\n";
        cout << "3. metod nolychenuya znachenuya yacheuku int GetValue(int i, int j)\n";
        cout << "4. Matrix+nepegpyzka\n";
        cout << "5. Exit\n";
        cout << "Vesti nynkt menu->";
        cin>>c;
        switch(c)
        {
        case '1':
            cout<<sz.get_row()<<endl;
            system("pause");
            break;
        case '2':
            cout<<sz.get_column()<<endl;
            system("pause");
            break;
        case '3':
            int i, j;
            cout<<"Введите i: ";
            cin>>i;
            cout<<"Введите j: ";
            cin>>j;
 
            cout<<m.get_value(i, j)<<endl;
            system("pause");
 
            break;
        case '4':
cout << "ucxodnaya matrix\n";
            for(i = 0; i < sz.get_row(); i++) {
                for(int j = 0; j < sz.get_column(); j++) {
                    cout << m.get_value(i, j) << "\t";
                }
                cout << endl;
            }
            cout<<endl;
            ++m;
cout << "nepegrygenaya matrix\n";
            for(i = 0; i < sz.get_row(); i++) {
                for(int j = 0; j < sz.get_column(); j++) {
                    cout << m.get_value(i, j) << "\t";
                }
                cout << endl;
            }
            system("pause");
            break;
        case '5':
            return;
            break;
        }
    }
 
    system("pause");
}
Добавлено через 2 минуты
C++
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
 
class Size {
    int column;
    int row;
    
public:
    Size() {//Конструктор, создающий Size с размерами 1 на 1
        column = 1;
        row = 1;
    }
 
    Size(int i, int j) {//Конструктор, создающий Size с размерами i на j
        column = i;
        row = j;
    }
 
    void set(int i, int j) {//Назначение Size размеров i на j
        column = i;
        row = j;
    }
 
    int get_column() {//Метод получения количества столбцов
        return column;
    }
 
    int get_row() {//Метод получения количества строк
        return row;
    }
};
Yandex
Объявления
13.05.2012, 12:27     Matrix. Комментарии к программе
Ответ Создать тему
Опции темы

Текущее время: 20:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru