{ тип множества } type TSingleSet=set of byte; TLongSet=array of TSingleSet; { создание множества на count элементов реальное кол-во элементов всегда будет выравнено по границе, кратной 256 пример: createSet(3) создаст множество на 256 элементов, createSet(321) - на 512 элементов } function createSet(count:integer):TLongSet; { изменение размера множества множество может как увеличено, так и уменьшено в последнем случае возможна утеря элементов } procedure setSize(var dstSet:TLongSet; newCount:integer); { получение размера множества (кратно 256) } function getSize(bSet:TLongSet): integer; { уничтожение множества } procedure destroySet(var dstSet:TLongSet); { аналог операции in } function inSet(bSet:TLongSet; e:integer):boolean; { аналог операции +, возвращает новое множество } function sumSet(set1,set2:TLongSet):TLongSet; { аналог операции -, возвращает новое множество } function subSet(set1,set2:TLongSet):TLongSet; { аналог операции *, возвращает новое множество } function mulSet(set1,set2:TLongSet):TLongSet; { аналог функции include, изменяет переданное множество при необходимости увеличивает его размер } procedure includeSet(var dstSet:TLongSet; e:integer); { аналог функции exclude, изменяет переданное множество } procedure excludeSet(var dstSet:TLongSet; e:integer);
Проверить работу функций.