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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Demo0n
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 86
#1

с++ класс матрица - C++

01.12.2012, 15:16. Просмотров 1056. Ответов 7
Метки нет (Все метки)

Вот из этого как то надо сделать наследование и полиморфизм, питался делать наследование не выходило по тому что писало что ":" не объявленный итендификатор
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
#include <iostream>
#include <math.h>
using namespace std;
class matrix
    {   
        private:
        int *p_m;
        int n;
        public:
        matrix (int count_n);
        matrix (const matrix& m);
        matrix operator+(const matrix my);
        matrix operator-(const matrix my);
        matrix operator*(const matrix my);
        void   operator=(const matrix my);
        void   In_put();
        void   Out_put();
        ~matrix();
    };
 
 
matrix  matrix::operator*(const matrix my)
{
    int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
    m_ret.p_m[i]=p_m[i]*my.p_m[i];
    return m_ret;   
};
 
matrix  matrix::operator+(const matrix my)
{
    int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
    m_ret.p_m[i]=p_m[i]+my.p_m[i];
    return m_ret;
};
 
matrix  matrix::operator-(const matrix my)
{
int my_n=(n*n-n)/2+n;
matrix m_ret(n);
for(int i=0;i<my_n;i++)
m_ret.p_m[i]=p_m[i]-my.p_m[i];
return m_ret;
};
 
 
void matrix::operator=(const matrix my)
{
int my_n=(n*n-n)/2+n;
for(int i=0;i<my_n;i++)
p_m[i]=my.p_m[i];
};
 
matrix::matrix(int count_n)
{
n=count_n*count_n;
 
p_m=new int [n];
for(int i=0;i<n;i++)
p_m[i]=0;
};
 
matrix::matrix (const matrix& m) {
n=m.n;
int my_n=(n*n-n)/2+n;
p_m=new int [my_n];
for(int i=0;i<my_n;i++)
p_m[i]=m.p_m[i];
};
 
matrix::~matrix()
{
delete p_m;
};
 
void matrix::Out_put()
{
int y=0, out_ch=0;
for(int i=0;i<pow(n,0.5);i++)
{
for(int j=0;j<pow(n,0.5);j++)
{
cout.width(4);
cout << p_m[out_ch];
out_ch++;
}
cout << "\n";
y++;
    }
};
 
void matrix::In_put()
{
int y=0, in_ch=0;
for(int i=0;i<pow(n,0.5);i++)
    {
    for(int j=0;j<pow(n,0.5);j++)
        {
cout << "[" << i << "," << j << "]: ";
cin >> p_m[in_ch];
in_ch++;
        }
y++;
    }
};
 
 
int main()
{
int size;
cout << "Matrix [Size]: ";
cin >> size;
matrix m1(size), m2(size), m(size);
cout << "\nMatrix 1: \n";
m1.In_put();
cout<<endl;
m1.Out_put();
cout << "\nMatrix 2: \n";
m2.In_put();
cout<<endl;
m2.Out_put();
m=m1+m2;
cout << "\n Matrix 1 + Matrix 2 : \n";
m.Out_put();
cout << "\n";
 
m=m1-m2;
cout << "\n Matrix 1 - Matrix 2 : \n";
m.Out_put();
cout << "\n";
m=m1*m2;
cout << "\n Matrix 1 * Matrix 2 :\n";
m.Out_put();
cout << "\n";
 
 
system("pause");
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 15:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос с++ класс матрица (C++):

Определить базовый класс "Матрица" и класс-потомок "Треугольная матрица" - C++
Нужно определить класс &quot;матрица&quot; с возможностью динамического выделения и освобождения памяти, наполнения матрицы, сохранения и чтения из...

Класс матрица - C++
Прошу помочь с практическим заданием. Нужно создать класс матрица Данный класс содержит указатель на long, размер строк и столбцов и...

Класс Матрица - C++
Помогите пожалуйста, новичок в c++. Задание следующее: 3. Описать тип-объект MATRIX (матрица произвольной размерности M*N) и его методы:...

Класс матрица - C++
Помогите пожалуйста, не могу понять, почему не работает оператор умножения, выводит одни нули в Dev c++,в Visual выдаёт ошибку #include...

Класс матрица - C++
Здравствуйте. У меня есть класс матрицы: #pragma once #ifndef classMatrix_h #define classMatrix_h #include &lt;iostream&gt; ...

Класс матрица - C++
Доброго времени суток. Есть класс матрица с указателем и размерностями строк и столбцов. Проблема в том что не работает функция...

7
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
01.12.2012, 15:18 #2
Тут сразу 2 программы в одном коде, может просто нужен конкретный пример чего? Раз уж Вы пытались.
И желательно бы выкладывать и выделять то, что пытались)
0
Demo0n
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 86
01.12.2012, 15:20  [ТС] #3
Цитата Сообщение от Demo0n Посмотреть сообщение
Вот из этого как то надо сделать наследование и полиморфизм, питался делать наследование не выходило по тому что писало что ":" не объявленный итендификатор
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
#include <iostream>
#include <math.h>
using namespace std;
class matrix
    {   
        private:
        int *p_m;
        int n;
        public:
        matrix (int count_n);
        matrix (const matrix& m);
        matrix operator+(const matrix my);
        matrix operator-(const matrix my);
        matrix operator*(const matrix my);
        void   operator=(const matrix my);
        void   In_put();
        void   Out_put();
        ~matrix();
    };
 
 
matrix  matrix::operator*(const matrix my)
{
    int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
    m_ret.p_m[i]=p_m[i]*my.p_m[i];
    return m_ret;   
};
 
matrix  matrix::operator+(const matrix my)
{
    int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
    m_ret.p_m[i]=p_m[i]+my.p_m[i];
    return m_ret;
};
 
matrix  matrix::operator-(const matrix my)
{
int my_n=(n*n-n)/2+n;
matrix m_ret(n);
for(int i=0;i<my_n;i++)
m_ret.p_m[i]=p_m[i]-my.p_m[i];
return m_ret;
};
 
 
void matrix::operator=(const matrix my)
{
int my_n=(n*n-n)/2+n;
for(int i=0;i<my_n;i++)
p_m[i]=my.p_m[i];
};
 
matrix::matrix(int count_n)
{
n=count_n*count_n;
 
p_m=new int [n];
for(int i=0;i<n;i++)
p_m[i]=0;
};
 
matrix::matrix (const matrix& m) {
n=m.n;
int my_n=(n*n-n)/2+n;
p_m=new int [my_n];
for(int i=0;i<my_n;i++)
p_m[i]=m.p_m[i];
};
 
matrix::~matrix()
{
delete p_m;
};
 
void matrix::Out_put()
{
int y=0, out_ch=0;
for(int i=0;i<pow(n,0.5);i++)
{
for(int j=0;j<pow(n,0.5);j++)
{
cout.width(4);
cout << p_m[out_ch];
out_ch++;
}
cout << "\n";
y++;
    }
};
 
void matrix::In_put()
{
int y=0, in_ch=0;
for(int i=0;i<pow(n,0.5);i++)
    {
    for(int j=0;j<pow(n,0.5);j++)
        {
cout << "[" << i << "," << j << "]: ";
cin >> p_m[in_ch];
in_ch++;
        }
y++;
    }
};
 
 
int main()
{
int size;
cout << "Matrix [Size]: ";
cin >> size;
matrix m1(size), m2(size), m(size);
cout << "\nMatrix 1: \n";
m1.In_put();
cout<<endl;
m1.Out_put();
cout << "\nMatrix 2: \n";
m2.In_put();
cout<<endl;
m2.Out_put();
m=m1+m2;
cout << "\n Matrix 1 + Matrix 2 : \n";
m.Out_put();
cout << "\n";
 
m=m1-m2;
cout << "\n Matrix 1 - Matrix 2 : \n";
m.Out_put();
cout << "\n";
m=m1*m2;
cout << "\n Matrix 1 * Matrix 2 :\n";
m.Out_put();
cout << "\n";
 
 
system("pause");
};
и после закрытия кидает ошибку)
причем тут DLL?
0
Миниатюры
с++ класс матрица  
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
01.12.2012, 16:18 #4
Вероятно, массиву не хватает выделенной памяти. Нужно быть внимательней и выделять ее необходимое количество.
0
Demo0n
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 86
01.12.2012, 16:21  [ТС] #5
а как тут сделать наследование к каждой опирации
общее есть у каждой опирации
C++
1
2
3
int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
01.12.2012, 16:25 #6
можешь, пожалуйста, задание сказать понятнее.
Есть класс "матрица". Что от него надо унаследовать?
Или его от чего-то надо наследовать?
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
01.12.2012, 16:26 #7
Ну, во первых, здесь нет ни одного производного класса, надо их создать. Во-вторых, наследуются методы базового класса (целиком), т.е. не кусочки кода)
0
Demo0n
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 86
01.12.2012, 19:52  [ТС] #8
с этим матрицами надо сделать чтобы было "наследование, полиморфизм, инкапсуляция" что-то из этого
ну и можно чтобы все было)
0
01.12.2012, 19:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2012, 19:52
Привет! Вот еще темы с ответами:

класс матрица - C++
Объявите класс TMatric, создающий тип – матрицу. Элементы – данные класса: - указатель на область памяти, в которой расположена...

Класс Матрица - C++
Помогите мне пожалуйста разобраться с классом реализующий матрицы. Я пытаюсь инициализировать матрицу и заполнить ее элементами но не...

Класс матрица - C++
Реализовать класс матрица, который содержит следующие методы: добавить строку к матрице, удалить строку из матрицы, получить и установить...

класс матрица - C++
Пытаюсь сделать класс матрица. Т.к. для определения массива в с++ нужны static const, а матрица может быть произвольной, было принято...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru