Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2008, 17:20   #1
Kreaman
 
Регистрация: 11.06.2008
Сообщений: 7
Вопрос класс для работы с обьектом множества

Ребята, вот дали такое задание.
Ввести класс для работы с обьектом множества, реализовать объединения двух множеств.
Проблема в том что не понимаю как сделать. Помоги, кто знает.
Kreaman вне форума Ответить с цитированием
Старый 25.11.2008, 17:38   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

можно использовать обычные множества, которые на самом деле и хранятся как битовые. Если множество вам нужно для проверки, установлен ли какой то бит в слове
Код:
type  
  PByteSet = ^TByteSet;  
  TByteSet = set of Byte;  
var  
  W: Word;  
...  
{ если бит 3 в слове W установлен, тогда ... }  
  if 3 in PByteSet(@W)^ then ...  
...
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 25.11.2008, 22:51   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Если вас интересуют простые перечисляемые множества (типа [Red, Green, White]), то с ними можно работать, как с обычными массивами, а если нужны множества с диапазонами, то это уже посложней.
Sibedir вне форума Ответить с цитированием
Старый 26.11.2008, 01:02   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Тема интересная, если я правильно понял задачу. Если честно, давно хотел написать класс работы с множествами, да руки как-то не доходили. Решил таки потратить пару часиков.
Сначала пошел проторенной дорожкой. Пытался анализировать множества простой логикой. Ну типа, при вычитании множества 2 из множества 1, если начался диапозон множества 1, а диапозон второго множества не закончился, то новый диапозон не начинаем. Само же множество, описывал, как массив записей вида:
Код:
TSubset = record
  Begin_, End_: Real;
end;
Но потом, нарисовал на листочке вот такую картину
Безымянный.jpg
подумал и ниписал вот так
Класс множества.zip
Sibedir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компоненты для работы с SQL Родион БД в Delphi 4 18.06.2008 15:10
объявить класс для описания клиеннтского потока. с атрибутами String. Sargon Работа с сетью в Delphi 4 23.12.2007 23:36
Слежение за движущимся обьектом TOR Общие вопросы Delphi 1 31.05.2007 18:28
dll для работы с массивом alex23xandr Общие вопросы Delphi 3 25.05.2007 20:00