Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для gigder
3 / 3 / 1
Регистрация: 28.09.2012
Сообщений: 33

Объединение множеств. Некорректная обработка

30.05.2014, 20:47. Показов 998. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, почему в 3-ий if не передается значения Set a, Set b


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
Set a; Set b; Set d; Set c;
       if(choice==1) //âûïîëíåíèå âûáðàííîé îïåðàöèè
                  {
                       a.Show(); 
                  }
          if(choice==2) { 
                       a.Enter(); 
                       a.Show(); 
                       int vibor=0;
                       cout<<"Íàæìèòå 1, ÷òîáû ââåñòè 2 ìíîæåñòâî"<<endl;
                       cin>>vibor;
                       if(vibor==1)
                       {
                       cout<< "Ââîä è âûâîä 2 ìíîæåñòâà"<<endl;
                       b.Enter();
                       b.Show();
                       }
                       getch();
                   } 
 
        if(choice==3) { 
                       cout<<"Îáúåäèíåíèå äâóõ ìíîæåñòâ: "<< endl;
                       d.Union(a, b);  
                       d.Show();
                       getch();  
                    } 
         if(choice==4)  
         { 
                       cout<<"Ïåðåñå÷åíèå äâóõ ìíîæåñòâ: "<< endl;
                       c.intersection(a, b);  
                       c.Show();
                       getch();

Сама фун-ия Union:

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
void Set::Union(Set a, Set b) 
{ 
    this->size = a.size + b.size;  
    this->array = new unsigned int[size];
    unsigned i, j, count = 0; 
    unsigned int n = a.size; 
    
 
    for ( i = 0; i < a.size; i++) 
        array[i] = a.array[i]; 
 
    for ( i = 0; i < b.size; i++) 
    { 
        for ( j = 0; j < a.size; j++) 
            if(b.array[i] == a.array[j]) 
                continue; 
            else 
                count++; 
        if(count == a.size) 
            array[n++] = b.array[i];  
        count = 0;
    } 
    size = n;
}
Добавлено через 1 час 13 минут
Блин, помогите, пожалуйста)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.05.2014, 20:47
Ответы с готовыми решениями:

Объединение множеств
Задача. Написать программу, которая объединяет 2 множества. Вот мой код. Мне выдаёт ошибку, что последовательность не отсортирована. В...

объединение множеств
template&lt;class ValType, class FwdIt&gt; FwdIt copy ( FwdIt first, FwdIt last, FwdIt result ) { while (first!=last) *result++ =...

Объединение двух множеств
С 32 по 63 строчку, проблема в том, что не получается сделать объединение двух множеств. Подскажите в чем проблема? #include...

6
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
30.05.2014, 21:04
Цитата Сообщение от gigder Посмотреть сообщение
почему в 3-ий if не передается значения Set a, Set b
Откуда видно, что не передаётся?

Добавлено через 1 минуту
Копирующий конструктор в Set есть?
0
 Аватар для gigder
3 / 3 / 1
Регистрация: 28.09.2012
Сообщений: 33
31.05.2014, 18:01  [ТС]
alsav22, Может и передается, только получается пустое множество. А зачем использовать копирующий конструктор? Он есть
C++
1
2
3
4
5
 Set(const Set &ob) // конструктор копии
    {   size = ob.size;  
        array = new unsigned  int[size]; 
        for ( unsigned int i = 0; i < size; i++) 
              array[i] = ob.array[i]; }
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
31.05.2014, 18:20
Цитата Сообщение от gigder Посмотреть сообщение
Может и передается, только получается пустое множество.
Может, что передаётся, то и получается?

Добавлено через 8 минут
Цитата Сообщение от gigder Посмотреть сообщение
А зачем использовать копирующий конструктор?
Он и так используется, потому, что объекты в функцию по значению передаются.
0
 Аватар для gigder
3 / 3 / 1
Регистрация: 28.09.2012
Сообщений: 33
31.05.2014, 18:37  [ТС]
Объясните, пожалуйста, как его использовать? Я не пойму, почему при вводе выводе все норм, а при объединении не передается ни одно множество, как надо
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
31.05.2014, 18:47
Цитата Сообщение от gigder Посмотреть сообщение
как его использовать?
Он автоматом используется. Множества заполненные передаются в Union?
0
 Аватар для gigder
3 / 3 / 1
Регистрация: 28.09.2012
Сообщений: 33
31.05.2014, 18:59  [ТС]
Должны передаваться, но я посмотрел... и оказывается, что в 3-ий if они передаются пустыми
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.05.2014, 18:59
Помогаю со студенческими работами здесь

Объединение и пересечения множеств
Добрый вечер! Есть код , который находит пересечение и объединение двух множеств, но при объединении выводит символы с повторами, не...

Объединение множеств(массивов)
Например, если у меня есть массивы 123 и 3456, то объединение должно выдать 12345. Подскажите алгоритм объединения множеств. ...

Найти объединение двух множеств
Необходимо найти объединение двух множеств, но программа некорректно выдает ответ.Не могу найти ошибку #include&lt;iostream&gt; ...

Объединение, пересечение, разность множеств
#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; ...

Класс множество. Объединение множеств
естть два класса, задача объединить массивы внутри множества. не работает почему то class IntSet { private: int *ArrOfIntegers;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
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. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru