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

Создать класс Matrix и класс Size - C++

Восстановить пароль Регистрация
 
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
08.04.2012, 16:13     Создать класс Matrix и класс Size #1
Всем доброго дня!!!
Помогите пожалуйста с решением задачи, а то я в программировании плохо соображаю.
Помогите, буду очень благодарен!!!!

Вот условие задачи:
Создать класс 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 перегрузить оператор ++ перемножение матриц.

Добавлено через 3 часа 51 минуту
Помогите, буду очень благодарен!!!!

Добавлено через 1 час 3 минуты
Помогите, буду очень благодарен!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2012, 16:13     Создать класс Matrix и класс Size
Посмотрите здесь:

Создать класс matrix C++
Создать класс Matrix C++
C++ класс Matrix (СРОЧНО !!!)
Создать параметризированный класс Matrix C++
Класс matrix C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eji
116 / 116 / 6
Регистрация: 17.09.2010
Сообщений: 288
08.04.2012, 17:04     Создать класс Matrix и класс Size #2
Дмитрий12,
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
#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;
    }
};
 
class Matrix
{
    Size sz;
    int **values;
    void init_matrix(int value = 0)
    {
        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 i = 0; i < sz.get_row(); i++)
        {
            for(int j = 0; j < sz.get_column(); j++)
            {
                values[i][j] = value;
            }
        }
    }
    public:
    Matrix()
    {
        sz = Size();
        init_matrix();
    }
    Matrix(Size s, int value)
    {
        sz = s;
        init_matrix(value);
    }
    ~Matrix()
    {
        delete [] values;
    }
    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];
    }
};
 
int main(int argc, char *argv[])
{
    cout << "Demo\n";
    Size sz(5, 5);
    Matrix m(sz, 1);
    for(int 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");
    return 0;
}
Сейчас еще перегружу оператор++.
eji
116 / 116 / 6
Регистрация: 17.09.2010
Сообщений: 288
08.04.2012, 17:28     Создать класс Matrix и класс Size #3
Не выходит нормально перегрузить оператор ++:
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
#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;
    }
};
 
class Matrix
{
    Size sz;
    int **values;
    void init_matrix(int value = 0)
    {
        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 i = 0; i < sz.get_row(); i++)
        {
            for(int j = 0; j < sz.get_column(); j++)
            {
                values[i][j] = value;
            }
        }
    }
    public:
    Matrix()
    {
        sz = Size();
        init_matrix();
    }
    Matrix(Size s, int value)
    {
        sz = s;
        init_matrix(value);
    }
    ~Matrix()
    {
        delete [] values;
    }
    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;
    }
};
 
int main(int argc, char *argv[])
{
    cout << "Demo\n";
    Size sz(5, 5);
    Matrix m(sz, 2);
    for(int 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;
    }
    ++m;
    cout << "----------------------------------------\n";
    for(int 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");
    return 0;
}
Кто то может подсказать где ошибка?
Миниатюры
Создать класс Matrix и класс Size  
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
08.04.2012, 18:10  [ТС]     Создать класс Matrix и класс Size #4
Та и на этом большое спасибо!!!!
eji
116 / 116 / 6
Регистрация: 17.09.2010
Сообщений: 288
08.04.2012, 19:46     Создать класс Matrix и класс Size #5
Все таки если кто то знает как решить эту проблему сообщите.
Yandex
Объявления
08.04.2012, 19:46     Создать класс Matrix и класс Size
Ответ Создать тему
Опции темы

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