Под множеством в Паскале понимается совокупность взаимосвязанных элементов одного типа. Его элементы должны быть порядкового типа данных и описываться перечислением и/или интервалом. Служебные слова Set Of говорят, что объявлен множественный тип:
Type <имя типа> = Set Of <базовый тип>;
Размер множества может меняться, но количество элементов в нем, как правило, не должно превышать 256. Поэтому если нужно определить множество, состоящее из чисел, то следует указывать значения входящие в тип byte (от 0 до 255).
В Паскале для обозначения элементов множества используют квадратные скобки, в которых последние, как уже было сказано ранее, записываются интервалом и/или перечислением, например:
[‘A’, ‘B’, ‘C’] [0, 1, 2, 5, 9] [1..9] [1, 2, 3, 10..20]Элементы множества в отличие от массивов не имеют индексов (номеров), и поэтому порядок не важен. Возьмем, к примеру, два множества: [2, 3, 5] и [3, 5, 2], не смотря на расположение элементов, они тождественны.
С помощью конструктора множеств можно присвоить множественной переменной, какие-либо значения:
I:=[1, 2, 3, 5, 8];
C:=[‘b’, ‘d’, ‘f’];
B: = [True, False];
В ЯП Pascal над множествами предусмотрены следующие операции.
Объединение (+)
Объединением множеств A и B является множество C, которое содержит общие или хотя бы одного из них элементы.
Пример:
[1, 2, 3, 4] + [3, 4, 5] = [1, 2, 3, 4, 5] [‘A’, ‘B’, ‘C’, ‘D’] + [‘B’, ‘E’, ‘G’] = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘G’]Пересечение (*)
Пересечением множеств A и B является множество C, которое содержит элементы обоих множеств.
Пример:
[1, 2, 3, 4] * [3, 4, 5] = [3, 4] [‘A’, ‘B’, ‘C’, ‘D’] * [‘B’, ‘E’, ‘G’] = [‘B’]Разность (-)
Разностью множеств A и B является множество C, которое содержит элементы множества A, не вошедшие в множество B.
Пример:
[1, 2, 3, 4] — [3, 4, 5] = [1, 2] [‘A’, ‘B’, ‘C’, ‘D’] — [‘B’, ‘E’, ‘G’] = [‘A’, ‘C’, ‘D’]Тождественность (=)
Два множества считаются равными, если они состоят из одних и тех же элементов.
Пример:[1, 2, 3, 4] = [2, 1, 4, 3] => True
[‘A’, ‘B’, ‘C’, ‘D’] = [‘B’, ‘E’, ‘G’] => False
Нетождественность (<>)
Два множества считаются неравными, если они состоят из разных элементов.
Пример:
[1, 2, 3, 4] <> [2, 1, 4, 3] => False[‘A’, ‘B’, ‘C’, ‘D’] <> [‘B’, ‘E’, ‘G’] => True
Содержит (>=)
Выражение возвращает истину, если второе множество является подмножеством первого множества.
Пример:
[1, 2, 3, 4] >= [2, 1] => True[‘A’, ‘B’, ‘C’, ‘D’] >= [‘B’, ‘E’, ‘G’] => False
Содержится (<=)
Выражение возвращает истину, если первое множество является подмножеством второго множества.
Пример:
[1, 2, 3, 4] >= [2, 1] => False[‘A’, ‘B’] >= [‘B’, ‘A’, ‘G’] => True
Операция IN
Проверяет наличие определенного элемента в заданном множестве:
Пример:
1 In [1, 2, 3, 4] => True
B In [‘A’, ‘G’] => False
Для добавления множеству нового элемента в Паскаль есть операция Include:
Include(<множество>, <элемент>)
Для удаления из множества какого-либо элемента можно воспользоваться операцией Exclude:
Exclude(<множество>, <элемент>)
Необходимо помнить, что добавляемый/удаляемый элемент должен быть тождественного множеству типа.