Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9

Написать класс «матрица»

10.07.2014, 17:51. Показов 3452. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день я новичок помогите мне Написать класс «матрица». В классе реализовать следующие методы: конструкторы (по умолчанию, с
параметрами, копирования), деструктор, ввод с клавиатуры, поиск элемента по ключу,
вывод на экран (в виде методов класса и при помощи перегруженных операций
потокового ввода и вывода), перегрузить следующие операции: +, += (сложение матриц),
– (вычитание), = (присвоение), = = (сравнение по элементам), [] (взятие элемента с
заданным индексом).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.07.2014, 17:51
Ответы с готовыми решениями:

Написать класс Матрица. Массив объектов класса Массив
Написать класс Матрица (в данном случае матрица – массив объектов класса Массив из предыдущего задания). В классе реализовать следующие...

Написать класс "матрица"
Написать класс "матрица" В классе реализовать методы: конструкторы (по умолчанию, с параметрами, копирования), деструктор, ввод с...

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

26
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.07.2014, 17:57
Катя, вопрос-то в чем?
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
10.07.2014, 18:00
Цитата Сообщение от Vourhey Посмотреть сообщение
Катя, вопрос-то в чем?

Не по теме:

Они используют ключевое слово - "новичок" или "не понимаю с++" и так далее. Это фразы со скрытым смыслом - "напишите мне, а то мне лень учиться".

0
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
10.07.2014, 18:40  [ТС]
Программу написала, но запуталась не могу распутать.

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
class Matrix{Array *a;int m,n;
public:
Matrix(int m1,int n1,int t=0);
Array &operator [](int i)
{if(i<0 i>=m){cout<<exit(0);}
return a[i];
}
void Show(); ...
};
{
Matr = new long int*[m];
for (int z=0; z<m; z++)
Matr[z] = new long int[n];
}
private:
unsigned xsize, ysize;
double *Array;
int temporary;
public:
// constructors and destructor
Matrix(): m(), n() { Create(); }
Matrix(long int i): m(i), n(i) { Create(); }
Matrix(long int i, long int j): m(i), n(j) { Create(); }
~Matrix()
{
for (int z=0; z<m; z++)
delete[] Matr[z];
delete[] Matr;
}
// methods
Matrix & operator*(Matrix& M);
Matrix & operator()(unsigned n, unsigned v)
{
Array[n]=v;
}
};
Matrix::Matrix(unsigned y, unsigned x)
{
unsigned asize = x*y;
double v;
Array = new double[asize];
xsize = x;
ysize = y;
temporary = 0;
for(unsigned i = 0; i<asize; i++) {
cout<<"Enter "<< i+1 <<" elemet ";
cin>>v;
Array[i] = v;
}
{
if (i<m && j<n)
return Matr[i][j];
else
cout << "Error: 1";
}
void MultiplyBy(long int x)
{
for(int i=0; i<m; i++)
for(int j=0; j<n; j++)
Matr[i][j] *= x;
}
void Display()
{
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cout.width(4);
cout << Matr[i][j];
}
cout << endl;
}
}
};
return Array[n-1];
}
Matrix & Matrix::operator*(Matrix& M)
{
if(ysize==M.xsize)
for(int i=0;i<ysize;i++)
for(int j=0;j<M.xsize;j++)
for(int k=0;k<ysize;k++)
M(i*j) += Array[i*k]*M(k*j);
else cout<<"Размерности матриц не верны"<<endl;
return M ;
}
Matrix::Matrix(unsigned y, unsigned x, double v)
{
temporary = 0;
Array[y*x] = v;
}
int main()
{
Matrix M();
for (int i=; i<; i++)
{
for (int j=0; j<5; j++)
M.Element(i, j) = i+j;
}
M.Display();
cout << "\n After multiply by 5\n" << endl;
M.MultiplyBy(5);
M.Display();
return 0;
}
 
[size="1"][color="grey"][I]Добавлено через 21 минуту[/I][/color][/size]
есть класс Array. Класс Matr-агрегированный класс.
class Matr
{Array *matr; int m, n;
public:
...
};
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.07.2014, 18:45
Цитата Сообщение от Катя 89 Посмотреть сообщение
есть класс Array. Класс Matr-агрегированный класс.
Это ведь кто-то для тебя писал?
Цитата Сообщение от Катя 89 Посмотреть сообщение
есть класс Array.
Где же он есть, когда его нет
0
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
10.07.2014, 18:52  [ТС]
А куда его добавить?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.07.2014, 18:55
Еще не понятно, что за Matr, откуда он берется. Ты компилировала свой код? Он ведь не скомпилится.
0
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
10.07.2014, 18:58  [ТС]
Запуталась окончательно, не могу найти выхода.
0
Модератор
Эксперт С++
 Аватар для zss
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
10.07.2014, 19:06
Цитата Сообщение от Катя 89 Посмотреть сообщение
Запуталась окончательно
Зачем было писать так много сразу?
Начните с:
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
class Matrix
{
private:
   double **Array;
   int m,n;
public:
Matrix(unsigned y, unsigned x) // Конструктор
{
     m=x;n=y;
     Array = new double*[n];
     for(unsigned i = 0; i<n; i++) 
              Array[i]=new double[m];
}
~Matrix() // деструктор
{
     for(unsigned i = 0; i<n; i++) 
              delete[] Array[i];
     delete[] Array;
}
int main()
{
    Matrix A(2,3);
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
10.07.2014, 19:07  [ТС]
О спасибо, спасибо.
0
619 / 218 / 51
Регистрация: 22.11.2010
Сообщений: 1,781
Записей в блоге: 3
10.07.2014, 19:08
я предлагаю написать заново и с самого начала, с конструктора.
C++
1
2
3
4
constructor Matr::Matr() //по умолчанию
{
//действия для создания матрицы
}
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.07.2014, 19:08
Начни писать с нуля, чтобы распутаться. Безо всяких Matr и Array.
0
10.07.2014, 19:09

Не по теме:

Цитата Сообщение от zss Посмотреть сообщение
Зачем было писать так много сразу?
Начните с:
Цитата Сообщение от Supernatural Посмотреть сообщение
я предлагаю написать заново и с самого начала, с конструктора.
Да мы все сговорились...

0
10.07.2014, 19:10

Не по теме:

Да мы все сговорились...
бывает..)))
ладно, доверю этого клиента более опытным программистам))))

0
2 / 2 / 2
Регистрация: 29.06.2014
Сообщений: 13
11.07.2014, 03:41
Раньше тоже делал это задание. но я, на твоем месте, выучил бы эту тему.
Вложения
Тип файла: rar matr.rar (2.7 Кб, 44 просмотров)
1
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
13.07.2014, 19:20  [ТС]
Вот какую программу я написала, но все равно не работает. Помогите.

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
#include "matrix.h"
#include "array.h"
#include <iostream>
using std::cout; 
 using std::cin; 
#include <iomanip> 
using std::setw;   
#include <cstdlib>
class Matrix
public
 Massiv
Matrix::Matrix() 
{
size = 10; 
ptr = new Array [size]; 
 for (int ix = 0; ix < size; ix++) 
for (int jx = 0; jx < 10; jx++)
ptr[ix][jx] = 0;
}
Matrix::Matrix(int matrixSize, int arraySize) 
{
size = (matrixSize > 0 ? matrixSize : 10); 
ptr = new Array [size]; 
for (int ix = 0; ix < size; ix++) 
ptr[ix].setSize(arraySize > 0 ? arraySize : 10); 
for (int ix = 0; ix < size; ix++) 
for (int jx = 0; jx < ptr->getSize(); jx++)
ptr[ix][jx] = 0;
}
Matrix::Matrix(  Matrix &matrixToCopy ) 
:size(matrixToCopy.size)              
{
ptr = new Array [size]; 
for (int ix = 0; ix < size; ix++) 
ptr[ix].setSize(size); 
for (int ix = 0; ix < size; ix++)
for (int jx = 0; jx < ptr->getSize(); jx++)
ptr[ix][jx] = matrixToCopy[ix][jx];
 matrixToCopy
}
Matrix::~Matrix() 
{
Array *Matrix::getPtr() const
{
return ptr;
}
ostream &operator<< (ostream &output, const Matrix &obj)
{
for (int ix = 0; ix < obj.size; ix++)
{
for (int jx = 0; jx < obj.ptr->getSize(); jx++)
{
output << setw(5) 
<< obj.ptr[ix][jx];
}
cout << std::endl;
}
output << std::endl; 
return output;
 }
for (int ix = 0; ix < obj.size; ix++)
for (int jx = 0; jx < obj.ptr->getSize(); jx++)
input >> obj.ptr[ix][jx]; 
return input;  }
Array &Matrix::operator[] (int subscript)
{
if(subscript < 0 || subscript >= size)
{
void Matrix::setMatrix() 
{
for (int ix = 0; ix < size; ix++)
for (int jx = 0; jx < ptr->getSize(); jx++)
cin >> ptr[ix][jx]; 
}
void Matrix::getMatrix() 
{
for (int ix = 0; ix < size; ix++)
{
for (int jx = 0; jx < ptr->getSize(); jx++)
cout << setw(5) << ptr[ix][jx]; 
cout << std::endl;
}
cout << std::endl; 
}
for (int ix = 0; ix < size; ix++)
for (int jx = 0; jx < ptr->getSize(); jx++)
}
Matrix Matrix::operator+ (const Matrix &right)
{
if (size != right.size || ptr->getSize() != right.getPtr()->getSize())
{
cout << 
exit(1); 
}
0
14.07.2014, 07:44

Не по теме:

Мне вот интересно, почему некоторые пишут что то типа

C++
1
using std::cout;
или
C++
1
using std::cin;
если можно написать одну строчку
C++
1
using namespace std;
и не париться?:D

0
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 538
14.07.2014, 07:58
Sh@dow777, подключи еще одну толстую библиотеку, в которой есть вектор и лист и удачно откомпилируй.
0
14.07.2014, 07:59

Не по теме:

Или вообще не пишут

C++
1
using namespace std;
и пишут, где им надо, что то типа
C++
1
std::vector
C++
1
std::map
C++
1
std::cin
Ведь это
C++
1
std
можно в одной строчке убрать:) Если что, то это лично мое мнение.

0
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 538
14.07.2014, 08:03
Sh@dow777, ну лобай теперь все в один неймспейс.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.07.2014, 08:03
Помогаю со студенческими работами здесь

Класс: Реализовать класс Matrix - матрица, на основе двухмерного массива размерности M на N...
1) Реализовать класс Matrix - матрица, на основе двух-мерного целочисленного массива int размерности M на N (кол-во строк и кол-во...

Создать класс матрица Данный класс содержит указатель на int...
Помогите решить хотя бы часть задачи. Создать класс матрица Данный класс содержит указатель на int, размер строк и столбцов и...

Класс: Нужно написать класс,который будет вычислять заданную функцию...
Нужно написать класс,который будет вычислять вот такую функцию y= \sqrt{1/x^n} , также приложу картинку для удобства. x и n - параметры.

Класс: Написать класс с использованием объекта класса Integer с обработкой исключения.
Написать класс с использованием объекта класса Integer с обработкой исключения (блок try-catch)

Написать класс строка и производный класс, ее шифрующий
Добрый день уважаемые форумчане. Вопрос стоит в решении данной задачи. Мне очень нужна ваша помощь по той причине что мне задали задачу по...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru