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

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

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

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

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

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

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

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

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

4
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2010, 05:50

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

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

Создать класс Fraction, описывающий простую дробь. (Прошу помочь)
Создать класс Fraction, описывающий простую дробь.Добавить конструктор по...


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

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

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