Множество - это совокупность элементов одного и того же перечисляемого типа.
Оно задается перечислением элементов. Например, множество четных чисел от 0 до 10 в математике записывается так:
{ 0,2,4,6,8,10 }.
В Паскале оно представляется аналогично, только заключается в квадратные скобки:
[0,2,4,6,8,10]
В общем случае в разделе Var множество описывается следующим образом:
Var
Имя_множества : Set Of Тип_Компонент;
где Тип_Компонент — обязательно порядковый.
Пример.
Type
Days = (Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday);
Bukva = Set of ’a’..’z’;
Var
Sim : Bukva;
Chislo : Set of 1..20;
WeekEnd, Rabdny, ObDni : Set of Days;
При использовании последнего описания можно выполнять присваивания вида:
Weekend := [Saturday, Sunday];
Мощность множества — это максимальное количество элементов в нём. В Паскале оно ограничивается числом 256.
Множество может не содержать ни одного элемента. Оно называется пустым и обозначается следующим образом: [ ]. По определению пустое множество является компонентой любого множества.
Для множеств допустимы следующие операции:
1) сравнение:
а) на равенство двух множеств (совпадают множества или нет) ;
б) на вхождение одного множества в другое;
в) на принадлежность элемента множеству;
2) объединение;
3) пересечение;
4) вычитание.
1) Результат операций сравнения — булевский.
1, а) Операции сравнения на равенство выполняются, как и для других типов, например:
If ObDny = WeekEnd Then
Множества равны, если они содержат одни и те же константы.
1, б) Проверка на вхождение выполняется с помощью знаков:
<= или >=
Выражение S1 <= S2 проверяет, все ли элементы множества S1 входят в S2, а S1 >= S2, содержит ли S1 все элементы из S2.
Пример. [1,2,3] = [2,3,1] результат True
[’A’, ’C’] <= [’A’, ’B’, ’C’, ’D’] результат True
[ ] <= [’A’] результат True - пустое множество входит в любое другое.
1, в) Для определения принадлежности некоторого элемента множеству в Паскале используется операция In вида: