{ тип множества }
type TSet=pointer;
{ выделение памяти для множества на count элементов}
function createSet(count:integer):TSet;
{ изменение размера множества }
procedure setSize(var dstSet:TSet; newCount:integer);
{ получение размера множества }
function getSize(bSet:TSet): integer;
{ уничтожение множества }
function destroySet(dstSet:TSet);
{ сжатие множества до минимально возможного размера }
procedure shrinkSet(var dstSet:TSet);
{ аналог операции in }
function inSet(bSet:TSet; e:integer):boolean;
{ аналог операции + }
{ при необходимости увеличивает размер dstSet}
procedure addSet(dstSet:TSet; b1Set,b2Set:TSet);
procedure addSet(dstSet,bSet:TSet);
{ аналог операции - }
{ при необходимости увеличивает размер dstSet}
procedure subSet(dstSet:TSet; b1Set,b2Set:TSet);
procedure subSet(dstSet,bSet:TSet);
{ аналог операции * }
{ при необходимости увеличивает размер dstSet}
procedure mulSet(dstSet:TSet; b1Set,b2Set:TSet);
procedure mulSet(dstSet,bSet:TSet);
{ аналог функции include }
{ при необходимости увеличивает размер dstSet}
procedure includeSet(dstSet:TSet; e:integer);
{ аналог функции exclude }
{ при необходимости увеличивает размер dstSet}
procedure excludeSet(dstSet:TSet; e:integer);
Проверить работу функций.
Рекомендуемый язык программирования - FreePascal
Разрешается использовать язык программирования Си