Множини
{початкова множина чисел}
i, k: integer;
begin
S: = [2..N];
for i: = 2 to N do
if i in Sthen begin
writeln (i);
{виводимо найменше із елементів S}
{забираємо із S числа, крайні і}
for k: = 1 to N div i do
S: = S – [k*i];
end {if }
end.
Внутрішнє представлення множин
Знайомство з внутрішнім представленням множин допоможе нам зрозуміти особливості і обмеження, властиві цьому типові даних.
Всі значення множини представляються в пам’яті послідовностями бітів однакової довжини. За кожне значення базового типу “відповідає” один біт. Якщо множина вміщує деякий елемент, в “відповідальному” за нього біті зберігається 1, якщо не вміщує – зберігається 0.
Приклад.
Var X: set of 1..15;
Внутрішнє представлення Х
X: = [ ]; 000.0.000.0.000.0.000 >.
011010000000000 >
X: = [2, 3,5];
X: = [1..15]; 111111111111111 >
Операції над множинами зводяться до “поразрядныx“ логічних операцій над послідовністю бітів, наприклад об’єднання множин використовується шляхом “поразрядного” логічного додавання бітів.