Pascal. Множество (SET OF)

Множество - совокупность неупорядоченных данных одного типа.

Диапазон значений типа множество представляет собой мощность множества для определенного порядкового типа (базового типа). Каждое возможное значение типа множество является подмножеством возможных значений базового типа.

Переменная типа множество может принимать как все значения множества, так и ни одного.

Базовый тип не должен иметь более 256 возможных значений и порядковые значения верхней и нижней границы базового типа не должны превышать диапазона от 0 до 255. В силу этого базовый тип множества не может быть 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=[’ ‘..’/’,’:’..’?’];

Значения переменных и константы множества задаются в разделе операторов с помощью конструктора. Конструктор-список элементов базового типа, заключенных в квадратные скобки.

Над множествами возможны операции:

  1. Операция объединения (+):
    С:=А+В

  2. Операция пересечения (*):
    С:=А*В

  3. Операция разности (-):
    С:=А-В

  4. Операция равенства (=):
    С=В

  5. Операция неравенства (<>):
    C<>B

  6. Операция проверки на вхождение множества в множество (>=,<=):
    A<=B - включено ли А в В;
    A>=B - включено ли В в А.
  7. Операция проверки на вхождение элемента в множество (IN):
    С IN B - входит ли элемент С в множество В