Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/12: Рейтинг темы: голосов - 12, средняя оценка - 4.50
Fantasy
0 / 0 / 0
Регистрация: 01.09.2010
Сообщений: 7
1

Создать класс описывающий множество

01.09.2010, 19:11. Просмотров 2259. Ответов 4
Метки нет (Все метки)

Создать класс описывающий множество и производный от него с реализацией функций обьединения, пересичения, дополнения, деления и симетрического деления...Не могу написать функции для производного класс...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2010, 19:11
Ответы с готовыми решениями:

Создать класс, описывающий треугольник, и наследник, описывающий прямые треугольной призмы
Создать класс описывающий треугольник. найти площадь треугольника. создать класс наследник,...

Создать классы, описывающий прямоугольники и класс-наследник, описывающий прямоугольные параллепипеды
Создать классы, описывающий прямоугольники. Найти площадь прямоугольника. Создать класс-наследник,...

Класс: Создать класс, описывающий цех завода...
Создать класс, описывающий цех завода (количество единиц заготовок, поступающих на производство,...

Создать класс,описывающий треугольник
Создать класс,описывающий треугольник.Найти площадь треугольника.Ребята,помогите пожалуйста.Где...

Создать класс, описывающий багаж пассажира
. Создать класс, описывающий багаж пассажира. Данные класса: количество вещей и общий вес вещей....

4
Nameless One
Эксперт С++
5803 / 3453 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
01.09.2010, 20:11 2
Fantasy, ну ты бы выложил базовый класс.
ЗЫ. Пиши лучше упорядоченное множество, так будет лучше
0
alexzak
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
02.09.2010, 07:15 3
Цитата Сообщение от Fantasy Посмотреть сообщение
Создать класс описывающий множество и производный от него с реализацией функций обьединения, пересичения, дополнения, деления и симетрического деления...Не могу написать функции для производного класс...
Приведи свой класс, описывающий множество. При правильном интерфейсе реализация этих функций тривиальна.
0
Fantasy
0 / 0 / 0
Регистрация: 01.09.2010
Сообщений: 7
13.09.2010, 22:33  [ТС] 4
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
#include <iostream>
 
using namespace std;
 
class Mnoj
{
private:
    int *mas;
    int n;
public:
    Mnoj();
    ~Mnoj();
 
};
Mnoj::Mnoj()
{
    cout<<"Enter number of elements"<<endl;
    cin>>n;
    mas=new int[n];
    for(int i=0;i<n;i++)
    {
        cout<<"X"<<i+1<<"= ";
        cin>>mas[i];
    }
    cout<<endl;
}
 
Mnoj::~Mnoj()
{
    delete []mas;
};
 
 class Func: public Mnoj
 {
     public:
         Mnoj *Objedinenie(  );
         Mnoj *Peresechenie();
         Mnoj *Dopolnenie();
         Mnoj *Delenie();
         Mnoj *SimetricheskoeDelenie();
0
alexzak
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
14.09.2010, 05:50 5
У класса Mnoj интерфейс пустой, т.е. кроме конструктора и деструктора в нём ничего нет. Подумай, какие операции ты можешь совершать над множеством и его элементами:

1. включить элемент во множество
2. исключить элемент
3. проверить входит ли элемент во множество
4. пройти по всем элементам множества

Вот это и должно быть в интерфейсе. Через это ты и будешь реализовывать объединение, дополнение и т.д.
C++
1
2
3
4
5
6
7
8
9
10
class Mnoj
{
public:
    void insert(int elem);  // включить
    void erase(int elem);  // исключить
    bool contains(int elem) const;  // проверить вхождение
 
    void getall(int *& first, int & size) const;
        // получить указатель на первый элемент и число элементов
};
Твоя задача: реализовать этот интерфейс.

Через этот интерфейс объединение реализуется так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void insert_all(Mnoj & dst, Mnoj const & src)
{
    int * elems;
    int size;
    src.getall(elems, size);
 
    for (int i = 0; i < size; ++i)
        dst.insert(elems[i]);    
}
 
void union(Mnoj & dst, Mnoj const & m1, Mnoj const & m2)
{
    insert_all(dst, m1);
    insert_all(dst, m2);
}
Пересечение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
void intersection(Mnoj & dst, Mnoj const & m1, Mnoj const & m2)
{
    int * elems;
    int size;
    m1.getall(elems, size);
 
    for (int i = 0; i < size; ++i)
    {
        if (m2.contains(elems[i]))
            dst.insert(elems[i]);
    }
}
Всё делается исходя из определения этих операций. Понятно?
0
14.09.2010, 05:50
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2010, 05:50

Создать класс, описывающий целое число
Добрый вечер, уважаемые форумчане. Прошу помощи с решением задачи. Вот ее условие. Создать класс,...

Создать класс, описывающий комплексные числа
Помогите, пожалуйста! Нужно создать класс, описывающий комплексные числа. Класс содержит два...

Создать класс, описывающий библиотечную карточку
Создать класс, описывающий библиотечную карточку. Данные класса: имя, фамилия, количество взятых...


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

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

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