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

C++: класс матрица. Действия с ними - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Команда выбора http://www.cyberforum.ru/cpp-beginners/thread117784.html
Заданы три действительных числа. Выберите из них те, которые принадлежат промежутке (-4,8).
C++ хэш-функция Здрасти. Почитал тут про хэш-ф-ии, и был приведен пример: hashVal=(hashVal*128+key)%tableSize; А Что означает величина 128? И почиму она именно 128? http://www.cyberforum.ru/cpp-beginners/thread117780.html
Конструкторы - моя головная боль) C++
Помогите кто чем может!!! Мне надо создать конструктор который бы вычислял длину прямой, которая задана 2-мя точками на плоскости. L=(sqrt(pow((y11-y1),2)+pow((x11-x1),2))); // Походу так выглядит...
Найти произведение минимальных по модулю элементов столбцов матрицы C++
Дана действительная матрица размерности M*N. Найти произведение минимальных по модулю элементов ее столбцов и записать это произведение на главную диагональ. Не знаю как решить, как можно объявить...
C++ очистка рабочего стола http://www.cyberforum.ru/cpp-beginners/thread117758.html
Доброго времени суток всем! Нужно в С++ написать программу чтобы она очищала рабочий стол кроме значков Мой компьютер Мои документы. А еще лучше чтоб можно было выбирать те значки которые не нужно...
C++ Вычислить значение заданной функции Скласть програму для вычисления заданой функции подробнее

Показать сообщение отдельно
MR_Andrew
12 / 12 / 2
Регистрация: 19.12.2009
Сообщений: 115

C++: класс матрица. Действия с ними - C++

16.04.2010, 23:18. Просмотров 4950. Ответов 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
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
    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);
        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;
};
 
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;
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]=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<n;i++)
    {
    for(int k=0;k<y;k++)
        {
cout.width(4);
cout << "0";
        }
for(int j=0;j<n-y;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<n;i++)
    {
    for(int j=0;j<n-y;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 << "\nMatrix 2: \n";
m2.In_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";
m=m1/m2;
cout << "\n Matrix 1 / Matrix 2 :\n";
m.Out_put();
getch();
};
Вот только тут нету записи в файл и детерминанта. С файлыми у меня туговато, поэтому, если кому не сложно, не могли бы Вы помочь мне втулить еще эту штуку?

И детерминант - с математикой воюю, реализовать не смог.

В общем, в этом всем не хватает только файла и детерминанта. Очень прошу помочь.

Буду ОЧЕНЬ благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru