Множество - это совокупность элементов одного и того же перечисляемого типа. Оно задается перечислением элементов. Например, множество четных чисел от 0 до 10 в математике записывается так:
{ 0,2,4,6,8,10 }
В Паскале оно представляется аналогично, только заключается в квадратные скобки:
[0,2,4,6,8,10]
Пример.
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 которая дает значение True, если элемент принадлежит множеству.
Пример.
’А’ In [’A’,’B’,’Г’,’Д’] - результат True
’A’ In [’X’,’Y’,’Z’] - результат False
S In [’A’..’Z’] - результат True, если S - латинская буква.
Операция In может эффективно применяться для исключения сложных проверок.
Пример.
Вместо условия
(Ch=’A’) Or (Ch=’E’) Or (Ch=’I’) Or (Ch=’S’) Or (Ch=’X’);
можно записать более простое
Ch In [’A’,’E’,’I’,’S’,’X’];
2) Объединением двух множеств является множество, составленное из элементов, входящих в оба исходных. Операция объединения обозначается знаком +.