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

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

Войти
Регистрация
Восстановить пароль
 
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
#1

Действия над массивами (объединение, разность) - C++

10.04.2015, 15:26. Просмотров 461. Ответов 7
Метки нет (Все метки)

Создать класс в котором есть массив, его нужно разбить на 2 массива. В еще одном классе эти массивы нужно использовать как множества чисел и сделать их объединение, разницу, пересечение и симметричную разницу - каждое действие в новом методе, я начало сделать, а от эти действия у меня не получились, ибо не пойму как правильно работать с элементами массива, если кто знает как сделать буду очень благодарен за помощь.

Вот тот код что я писал:

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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#include "stdafx.h"
#include "iostream"
using namespace std;
 
 
class Set{
public:
    int *mass;
    int *A;
    int *B;
    int maximumsize;
    
    Set(int maximumsize);
    ~Set();
    void Get(int maximumsize);
 
};
Set::Set(int maximumsize_) 
    :maximumsize(maximumsize_) {
    
    mass = new int[maximumsize];
    A = new int[maximumsize / 2];
    B = new int[maximumsize / 2];
    for (int i = 0; i < maximumsize; i++)
    {
        mass[i] = i;
    }
    for (int i = 0; i <= maximumsize / 2; i++)
    {
        A[i] = i;
        B[i] = i+ (maximumsize / 2);
    
    }
    
 
}
 
Set::~Set(){
    delete [] mass;
    delete [] A;
    delete [] B;
}
 
void Set::Get(int maximumsize){
    for (int i = 0; i < maximumsize; i++)
    {
        cout << mass[i] << " ";
    }
    cout << endl;
    cout<<"Mno}{ustvo A"<<endl;
    for (int i = 0; i <= maximumsize / 2; i++)
    {
        cout << A[i] << " ";
    }
    cout << endl;
    cout<<"Mno}{ustvo B"<<endl;
    for (int i = 0; i <= maximumsize/2; i++)
    {
                    cout << B[i] << " ";
    }
    cout << endl;
}
class Operation:public Set{
public:
    Operation(int q) :Set(q){
    }
    void unionSets();
    void intersectionSets();
    void diferenceSets();
    void summetricSets();
    void isSubset();
 
};
 
void Operation::unionSets(){
    int *a = new int[maximumsize];
    cout <<"Obedunenue Mno}{ustv A i B : "<<endl;
    for (int i = 0; i <= maximumsize / 2; i++)
    {
 
        a[i] = A[i] + B[i];
        cout << a[i]<<" ";
        }
    
}
 
void Operation::intersectionSets()
{
    cout <<"Peresu4enue Mno}{ustv A i B : "<< endl;
    int *a = new int[maximumsize];
    for (int i = 0; i <= maximumsize / 2; i++)
   {  
  if (A[i]=B[i])
        {
      a[i] = A[i]=B[i];
        cout << a[i]<<" ";
         }
    }
    
}
 
void Operation::diferenceSets()
{
 
    int *a = new int[maximumsize];
    cout <<"Raznuca Mno}{ustv A i B : "<<endl;
    for (int i = 0; i <= maximumsize / 2; i++)
   {  
  if (B[i]>maximumsize / 2)
      a[i] =B[i];
        cout << a[i]<<" ";
         }
    
    }
 
void Operation::summetricSets()
{
    cout <<"Summetru4na9 raznuca Mno}{ustv A i B : "<< endl;
    int *a = new int[maximumsize];
    for (int i = 0; i <= maximumsize / 2; i++)
   {  
  if (B[i]>maximumsize / 2 && A[i]<maximumsize / 2)
      a[i] =B[i]+A[i];
        cout << a[i]<<" ";
         }
    
}
void Operation::isSubset()
{
int x=0,y=0,z=0;
int *a = new int[maximumsize];
 
    for(int i=0; i<=maximumsize / 2; i++)
    {
 
        for(int j=0; j<maximumsize / 2; j++)
        {
 
            if( A[i]=B[j] && j<i)
            {
            x++;
            }
            if( A[i]=B[j] && j>i)
            {
            y++;
            }
            if( A[i]= B[j] )
            {
            if(j=i)
            {
            z++;
            }
            }
            
 
            }
        if (x<4 && y<4 && z<4)
            {
            cout<<"A ne pidmno}{un B";
            }
    }
if(x=4)
{
cout<< "B pidmno}{una A";
}
if(y=4)
{
cout<< "A pidmno}{una B";
}
if(z=4)
{
cout<< "A=B";
}
 
}
 
 
int main()
{
    int q=10;
    
    Operation objSet(q);
    objSet.Get(q);
    objSet.unionSets();
    objSet.intersectionSets();
    objSet.diferenceSets();
    objSet.summetricSets();
    objSet.isSubset();
    system("pause");
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2015, 15:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Действия над массивами (объединение, разность) (C++):

Арифметические действия над массивами. Некорректный результат - C++
Всем привет, что я не так делаю хочу от массива &quot;4&quot; отнять массивa &quot;1&quot; но показывает &quot;0&quot; почему ? #include&lt;iostream&gt; ...

Реализовать классические операции над множествами - объединение, пересечение и симметричная разность - C++
Создать параметризованный тип данных - множество. Этот тип предназначен для хранения множества элементов и выполнения операций над ними....

Найти пересечение, объединение, разность, симметрическую разность множеств - C++
Задание: Написать программу, которая проделывается операции над множествами (пересечение, объединение, разность, симметрическую разность) ...

Объединение, пересечение, разность, симметрическая разность множеств - C++
Составить множество А из букв фамилии, множество В – из букв имени, множество С – из букв отчества (повторяющиеся элементы удалить). Найти:...

Пересечение, объединение, разность, симметрическую разность - C++
Начал изучать С++ не так давно ...и вот возникла небольшая трудность Задание: Написать программу, которая проделывается операции над...

Объединение, пересечение, разность множеств - C++
#include &quot;stdafx.h&quot; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;math.h&gt; ...

7
John Prick
805 / 738 / 146
Регистрация: 27.07.2012
Сообщений: 2,110
Завершенные тесты: 3
10.04.2015, 15:35 #2
Что-то вопросы возникают уже с первых предложений...
Цитата Сообщение от qwer1234 Посмотреть сообщение
Создать класс в котором есть массив, его нужно разбить на 2 массива.
Это как? Ну создать класс, в котором есть массив - это понятно. Но вот разбить его.. Что в результате получить? Два массива или два объекта того класса, в котором есть массив?

А может быть, надо создать класс "Массив", в котором должны быть операции объединения, разности и т.п.?
0
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
10.04.2015, 16:39  [ТС] #3
John Prick, в том коде что я скинул все видно вроде, есть 2 класса Set и Operation, в первом я создал массив, и из него создал еще 2 - А и В, а в классе Operation над ними и нужно проводить действия (суммирование, разница и так далее)
0
John Prick
805 / 738 / 146
Регистрация: 27.07.2012
Сообщений: 2,110
Завершенные тесты: 3
10.04.2015, 16:44 #4
Цитата Сообщение от qwer1234 Посмотреть сообщение
в первом я создал массив, и из него создал еще 2 - А и В
Что создал - вижу. Что именно из него - нет.
0
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
10.04.2015, 17:43  [ТС] #5
John Prick, в классе Operation есть методы, объединение, разница и так далее, ток на англ название, вот они не работают
0
John Prick
805 / 738 / 146
Регистрация: 27.07.2012
Сообщений: 2,110
Завершенные тесты: 3
10.04.2015, 21:23 #6
qwer1234, я не дурак, понял. Но вот чего я правда не понял, так это самой постановки задачи. А твой код мало этому способствует, только запутывает. Будет гораздо лучше, если ты приведёшь "официальное" задание тут.
0
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
20.04.2015, 06:33  [ТС] #7
John Prick, Можете помочь с этим?
1. Создать класс Set, в котором реализовать два метода с названиями setSet и getSet. Первый метод должен принимать на вход множество целых чисел в виде одномерного массива, а второй - возвращать этот массив. Также предусмотреть в классе Set, конструктор, через который можно было бы связывать массив с соответствующим объектом класса Set.
2. Создать класс Operation в котором реализовать методы с названиями: unionSets (объединение множеств), intersectionSets (пересечение множеств), diferenceSets (разность множеств), symmetricDiffSets (симметричная разность множеств).
3. Каждый из вышеуказанных методов должен принимать на вход два объекта класса Set, и повергать соответствующую множество в виде одномерного массива целых чисел.
0
qwer1234
13 / 13 / 3
Регистрация: 30.10.2012
Сообщений: 463
27.04.2015, 09:36  [ТС] #8
и тишина (
0
27.04.2015, 09:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2015, 09:36
Привет! Вот еще темы с ответами:

Объединение, пересечение, разность множеств - C++
Это вполне стандартный алгоритм,может есть у кого готовый? Объединение, пересечение, разность множеств. Поверка на включение одного...

Работа с множествами: объединение, пересечение, симметрическая разность - C++
В общем нужно задать 3 множества (a,b,c) (массивы) И на выходе получить (&quot;A&quot; объединение с &quot;B&quot;) симметрическая разность этой дроби с...

Действия над матрицами - C++
Помогите выполнить действия над матрицами в С++ 2(А+В)(2В-А), где 3 4 5 А= 5 6 2 -1 3 1 -1 0 5 В = 0 1 3 ...

Действия над матрицами - C++
Привет программистам ! помогите плз вот в таком задании: ***** с клавиатуры задать матрицы А(n x n) и В(n x n). вычислит матрицу...


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

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

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