23 / 23 / 11
Регистрация: 15.04.2012
Сообщений: 183
|
|||||||||||
1 | |||||||||||
Ошбика в алгоритме нахождения разности множеств04.10.2012, 15:30. Показов 1543. Ответов 5
Метки нет (Все метки)
в два множества(это объекты) введены элементы: sets[2].add('k'); sets[3].add('x'); sets[2].add('y'); sets[3].add('z'); sets[2].add('h'); sets[3].add('h'); На выходе должен быть результат разности sets[2] - sets[3] равен {k,y} А получаю {k,y,h}. Оператор - для объектов перегружен. В принципе я знаю ошибку, если всё на бумаге или в уме раскидать, то результат правильный выдан, то есть ошибка семантическая. Но как её решить, не могу я понять Кучу вариантов перепробовал,везде всё возвращается к этому же результату. Добавлено через 3 минуты Так же я менял местами код делая вот так:
0
|
04.10.2012, 15:30 | |
Ответы с готовыми решениями:
5
Доказать, что симметрическая разность множеств равна симметрической разности дополнений этих множеств Количество элементов в разности множеств Доказать свойства разности множеств Написать функцию разности множеств |
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|||||||||||
04.10.2012, 15:31 | 2 | ||||||||||
Не по теме: эх, форматирование все съехало...
1
|
23 / 23 / 11
Регистрация: 15.04.2012
Сообщений: 183
|
|
04.10.2012, 15:46 [ТС] | 3 |
Я уже добавлял булевый флаг, разници нету...выводит тоже самое {k,k,k,y,y,y,h,h}.Тут идёт сравнение каждого элемента с каждым элементом другого множества, получаеться каждый элемент сравниваеться трижды в данном случае, и трижды он не равен, поэтому трижды он записывается, и так до конца, а вот последний элемент, видно что не 3 раза вывелся а только 2, потому что наконец-то встретил равного себе. С этим и борюсь вот, но пока я проигрываю в борьбе\
0
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
04.10.2012, 16:19 | 4 |
Наверняка вы его добавляли во вложенный цикл. Т.е. не туда.
Булевый флаг должен инициализироваться до цикла по j и проверяться один раз после цикла по j. Т.е. для каждого i будет одна проверка Можете глянуть тут http://www.cplusplus.com/refer... ifference/
0
|
Заблокирован
|
||||||
04.10.2012, 16:41 | 5 | |||||
все правильно вам говорят.
1
|
23 / 23 / 11
Регистрация: 15.04.2012
Сообщений: 183
|
||||||
04.10.2012, 21:41 [ТС] | 6 | |||||
Флаг устанавливается в "1", и становиться 0 только если значение х == у, а так как не равно, то и значение останется "1" у булевой переменной. В итоге сработает if(flag) Добавлено через 4 минуты Я понял свою ошибку)\\\Спасибо вам большое всем!)
0
|
04.10.2012, 21:41 | |
04.10.2012, 21:41 | |
Помогаю со студенческими работами здесь
6
Операции объединения, пересечения и разности множеств Реализовать функцию вычисления симметричной разности множеств Найти мощность разности An множества и объединения n-1 других множеств Логическая ошибка в алгоритме нахождения точек циссоиды Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |