Делалось с использованием http://itteach.ru/pascal/pascal-mnozhestvo-set-of
В Паскале Множество - совокупность неупорядоченных данных указанного (базового) типа. Базовый тип:
Поэтому, базовым типом множества не может быть ни Real (не порядковый тип), ни типы ShorInt, Integer, LongInt или Word (несовпадение диапазонов).
Переменная типа множество может принимать как все значения множества, так и ни одного.
Любой множественный тип может принимать значение [], которое называется пустым множеством.
Множество можно описать тремя способами:
1. В разделе описания переменных:
var <имя множества>:set of <базовый тип>;
2. В разделе описания типов:
type <имя типа>=set of <базовый тип>; >var <имя множества>:<имя типа>;
3. В разделе описания констант:
type up =set of ‘A’..’Z’; low=set of ‘a’..’z’; const upcase:up=[’A’..’Z’] ; voc:low[’a’,’e’,’i’,’o’,’u’,’y’] ; delimeter: set of char=[’ ‘..’/’,’:’..’?’];
Значения переменных и константы множества задаются в разделе операторов с помощью конструктора. Конструктор-список элементов базового типа, заключенных в квадратные скобки.
Над множествами возможны операции:
Операция объединения: С:=А+В
Операция пересечения: С:=А*В
Операция разности: С:=А-В
Операция равенства(совпадения) множеств: С=В
Операция неравенства: C <> B
Операция проверки на вхождение множества в множество: A ⇐ B - включено ли А в В;
Операция проверки на вхождение элемента в множество (in): С in B - входит ли элемент С в множество В