0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 11
1

Реализация операций с множествами на примере домашних животных на ферме

03.06.2015, 18:09. Показов 1274. Ответов 1
Метки нет (Все метки)

В следующих Заданиях использовать множество подходящего типа.Для выполнения операций с множествами задействовать алгоритмы работы с множествами.
ЗАДАЧА!
На трех фермах разводят домашних животных из имеющегося списка.Определить, каких животных выращивают хотя бы на одной ферме; на всех фермах;Только на одной ферме.
Помогите пожалуйста сделайте задачу буду очень благодарен!!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2015, 18:09
Ответы с готовыми решениями:

Посчитать животных на ферме
Стоит себе ферма. На ферме сидит фермер и считает, сколько кого есть у него на ферме - a верблюдов,...

Реализация операций над множествами. генерирование булеана конечного множества
Пусть Р - множество целых чисел (см. Таблицу). присвоить каждому из них в заданном порядке номер...

Сколько и каких животных живут на ферме, если известно общее количество ног
В Qbasic все правильно считает,а в консольных приложениях выдает ошибку и неправильные ответы ...

Из чата владельцев домашних животных
Бэмби: --- Э-гей! Люди! Какой наполнитель посоветуете для домашнего коня? ЛЮТИК: --- Народ!!!...

1
195 / 196 / 120
Регистрация: 27.05.2011
Сообщений: 545
03.06.2015, 20:12 2
Лучший ответ Сообщение было отмечено Selim как решение

Решение

Ну, вот вот мой быдлокод. Кончено, main монструозная, но, надеюсь, не составит труда оперделить, какая её часть за какое задание отвечает. Задача решена в общем виде для любого количества множеств.
В первом случае просто считается объединение, во втором — пересечение. А вот в третьем случае я применил формулу
https://www.cyberforum.ru/cgi-bin/latex.cgi?E_{xlusive} \, = \ A \cup B \cup C \ \setminus \ A \cap B \ \setminus \ A \cap  C \ \setminus \ B \cap C
Кликните здесь для просмотра всего текста
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <set>
#include <sstream>
#include <string>
#include <vector>
 
int main() {
    using namespace std;
    vector< set<string> > farms;
    while (cin and not cin.eof()) {
        cout << "Введите животных очередной фермы:" << endl;
        string line;
        getline(cin, line);
        istringstream stream(line);
        farms.push_back(set<string>(istream_iterator<string>(stream),
                istream_iterator<string>()));
        if (farms.back().empty()) {
            farms.pop_back();
            break;
        }
    }
 
    set<string> all;
    for (size_t i = 0; i < farms.size(); i++) {
        copy(farms[i].begin(), farms[i].end(), inserter(all, all.end()));
    }
    cout << "Этих животных выращивают хотя бы на одной ферме:" << endl;
    copy(all.begin(), all.end(), ostream_iterator<string>(cout, " "));
    cout << endl;
 
    set<string> tmp, any = farms.size() ? farms[0] : set<string>();
    for (size_t i = 1; i < farms.size(); i++) {
        tmp.clear();
        set_intersection(any.begin(), any.end(),
                farms[i].begin(), farms[i].end(), inserter(tmp, tmp.end()));
        any = move(tmp);
    }
    cout << "Этих животных выращивают на всех фермах:" << endl;
    copy(any.begin(), any.end(), ostream_iterator<string>(cout, " "));
    cout << endl;
 
    set<string> exclusive = move(all);
    for (size_t i = 0; i < farms.size(); i++) {
        for (size_t j = i + 1; j < farms.size(); j++) {
            set<string> i_and_j;
            set_intersection(farms[i].begin(), farms[i].end(),
                    farms[j].begin(), farms[j].end(),
                    inserter(i_and_j, i_and_j.end()));
            tmp.clear();
            set_difference(exclusive.begin(), exclusive.end(),
                    i_and_j.begin(), i_and_j.end(), inserter(tmp, tmp.end()));
            exclusive = move(tmp);
        }
    }
    cout << "Этих животных выращивают только на одной ферме:" << endl;
    copy(exclusive.begin(), exclusive.end(), ostream_iterator<string>(cout, " "));
    cout << endl;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2015, 20:12
Помогаю со студенческими работами здесь

Приложение «Учёт домашних животных в фермерском хозяйстве» в Delphi
Нужно разработать приложение на Delphi, позволяющее собирать и накапливать сведения по учёту...

Реализация класса "Множество" и операций над множествами
нужно реализовать класс множество и операции над множествами в виде его методов естественно, собсно...

Доказать равенства, используя свойства операций над множествами и определения операций
Доказать равенства, используя свойства операций над множествами и определения операций. б) ...

Доказать равенства, используя свойства операций над множествами и определения операций
Доказать равенства, используя свойства операций над множествами и определения операций. A\subseteq...

Доказать равенства, используя свойства операций над множествами и определения операций
Доказать равенства, используя свойства операций над множествами и определения операций. Дальше...

Приоритет логических операций и операций над множествами.
солидняк Я просто устал переписывать)) поэтому решил уже расписать, разжевать так сказать)). Эту...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru