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

Написать класс «множество» – наследник класса «массив» - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисление бесконечных сумм http://www.cyberforum.ru/cpp-beginners/thread1225648.html
составить программу вычисления суммы n членов ряда согласно условию задачи:cos(2x)/3+cos(4x)/15+cos(6x)/35+...
C++ Осуществить ввод данных для файла, выполнить реализацию алгоритма обработки и создания нового файла Осуществить ввод данных для файла, выполнить реализацию алгоритма обработки и создания нового файла, обеспечить вывод полученных результатов. 15) Даны два текстовых файла. Добавить в конец каждой строки первого файла соответствующую строку второго файла. Если второй файл короче первого, то оставшиеся строки первого файла не изменять. помогите решить http://www.cyberforum.ru/cpp-beginners/thread1225647.html
Написать класс «матрица» C++
Добрый день я новичок помогите мне Написать класс «матрица». В классе реализовать следующие методы: конструкторы (по умолчанию, с параметрами, копирования), деструктор, ввод с клавиатуры, поиск элемента по ключу, вывод на экран (в виде методов класса и при помощи перегруженных операций потокового ввода и вывода), перегрузить следующие операции: +, += (сложение...
C++ Структурный вывод матрицы в консоль
матрицу создать удалось, но вывести ее ровно, чтобы элемент под элементом так и не удалось. Может кто подскажет что-нибудь, лишнего не будет (я только прикоснулся к языку Си++) #include <cstdio> #include <cstdlib> #include <iostream> using namespace std;
C++ Написать рекурсивную процедуру, которая печатает ключи всех вершин двоичного дерева http://www.cyberforum.ru/cpp-beginners/thread1225629.html
Необходимо написать рекурсивную процедуру, которая печатает ключи всех вершин двоичного дерева. Двоичное дерево задастся в файле в следующем виде: index/ key/ left/ right 1 12 7 3 2 15 8 NULL 3 4 10 NULL 4 10 5 9 5 2 NULL NULL 6 18 1 4 7 7 NULL NULL 8 11 6 2
C++ Как объявить вектор фиксированной длины в классе? Нужно создать поле класса - вектор из двух элементов. Но код: class A { private: std::vector<int> v (2); ... } вызывает ошибку - компилятор ругается, что 2 - это константа. Я так понимаю, что возникает неопределённость - строка объявления вектора трактуется компилятором как объявление функции с именем "v", которая возвращает значение типа std::vector<int> и принимает аргумент в... подробнее

Показать сообщение отдельно
Катя 89
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
13.07.2014, 19:21  [ТС]     Написать класс «множество» – наследник класса «массив»
Ребята проверьте, что не так.


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
#include "many.h"
#include <iostream>
using std::cout; 
using std::cin; 
#include <iomanip> 
using std::setw;  
#include <cstdlib>
{
size = 6; 
ptr = new Matrix [size]; 
for (int ix = 0; ix < size; ix++) 
for (int jx = 0; jx < getSizeMat(); jx++)
for (int zx = 0; zx < getPtr()->getSize(); zx++)
ptr[ix][jx][zx] = 0;
}
Many::Many
{
size = (manySize > 0 ? manySize : 6); 
ptr = new Matrix [size]; 
for (int ix = 0; ix < size; ix++) 
ptr[ix].setSize(matrixSize > 0 ? matrixSize : 6, arraySize > 0 ? arraySize :6); 
//cout << size << "  " << ptr->getSize() << "  " << ptr->getPtr()->getSize() << std::endl;
for (int ix = 0; ix < size; ix++) 
for (int jx = 0; jx < ptr->getSizeMat(); jx++)
for (int zx = 0; zx < ptr->getPtr()->getSize(); zx++)
ptr[ix][jx][zx] = 0;
//    cout << size << "  " << ptr->getSize() << "  " << ptr->getPtr()->getSize() << std::endl;
}
Many::Many(Many &manyToCopy ) 
:size(manyToCopy.size)              
{
//    cout << size << "  " << manyToCopy.getSize() << "  " << manyToCopy.getPtr()->getSize() << std::endl;
ptr = new Matrix [size]; 
for (int ix = 0; ix < size; ix++) 
ptr[ix].setSize(manyToCopy.getSizeRow(), manyToCopy.getSizeCol()); 
for (int ix = 0; ix < size; ix++) 
for (int jx = 0; jx < ptr->getSizeMat(); jx++)
for (int zx = 0; zx < ptr->getPtr()->getSize(); zx++)
ptr[ix][jx][zx] = manyToCopy[ix][jx][zx];
}
Many::~Many() 
{
delete  [] ptr; 
}
{
if (obj.getSizeMany() == 0)
cout << "!\n";
for (int ix = 0; ix < obj.getSizeMany(); ix++)
{
for (int jx = 0; jx < obj.getSizeRow(); jx++)
{
for (int zx = 0; zx < obj.getSizeCol(); zx++)
{
output << setw(3) 
<< obj.ptr[ix][jx][zx];
}
cout << std::endl;
}
cout << std::endl << "--\n";
}
for (int ix = 0; ix < obj.size; ix++)
for (int jx = 0; jx < obj.getSizeRow(); jx++)
for (int zx = 0; zx < obj.getSizeCol(); zx++)
input >> obj.ptr[ix][jx][zx]; 
return input; // позволяет множественный ввод, типа cin >> x >> y >> z >> ...
}
Matrix &Many::operator[] (int subscript)
{
if(subscript < 0 || subscript >= size)
{
std::cerr << "\n -: " << subscript << std::endl;
exit(1); 
return ptr[subscript]; 
}
int Many::getSizeMany() const 
{
return size;
}
void Many::getMany() 
{
for (int ix = 0; ix < getSizeMany(); ix++)
{
for (int jx = 0; jx < getSizeRow(); jx++)
{
for (int zx = 0; zx < getSizeCol(); zx++)
{
cout << setw(3) 
<< ptr[ix][jx][zx];
}
cout << std::endl;
}
cout << std::endl << "--\n";
}
cout << std::endl; 
}
void Many::setMany() 
{
for (int ix = 0; ix < getSizeMany(); ix++)
for (int jx = 0; jx < getSizeRow(); jx++)
for (int zx = 0; zx < getSizeCol(); zx++)
cin >> ptr[ix][jx][zx];       
}
for (int ix = 0; ix < size; ix++)
for (int jx = 0; jx < ptr->getSizeMat(); jx++)
for (int zx = 0; zx < ptr->getPtr()->getSize(); zx++)
ptr[ix][jx][zx] = right.ptr[ix][jx][zx]; // скопировать массив
}
bool Many::operator== (const Many &right) const
{
if (size != right.getSizeMany() ||
getSizeRow() != right.getSizeRow() || getSizeCol() != right.getSizeCol())
return false; 
for (int ix = 0; ix < size; ix++)
for (int jx = 0; jx < ptr->getSizeMat(); jx++)
for (int zx = 0; zx < ptr->getPtr()->getSize(); zx++)
if (ptr[ix][jx][zx] != right.ptr[ix][jx][zx])
return false; 
return true; 
}
if (size != right.getSizeMany() ||
getSizeRow() != right.getSizeRow() || getSizeCol() != right.getSizeCol())
{
cout << "Множества разного размера!\n";
exit(1); // завершить работу программы
}
 
Many result(*this);
for (int ix = 0; ix < result.getSizeMany(); ix++)
for (int jx = 0; jx < result.getSizeRow(); jx++)
for (int zx = 0; zx < result.getSizeCol(); zx++)
result.ptr[ix][jx][zx] = ptr[ix][jx][zx] - right.ptr[ix][jx][zx];
return result; // вернуть сумму
}
Many Many::operator+ (const Many &right) 
{
if (getSizeRow() != right.getSizeRow() || getSizeCol() != right.getSizeCol())
{
cout << 
exit(1); 
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru