Множества в Паскаль – Операции над множествами


Множества — это наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами лишь подразумевается программистом и никак не контролируется компилятором. Количество элементов, входящих в множество, может колебаться в пределах от 0 до 256 (множество, не имеет элементов, называется пустой). Именно непостоянством в количестве своих элементов множества отличаются от массивов и записей.

Два множества считаются одинаковыми (эквивалентными) тогда и только тогда, когда все их элементы одинаковы, причем порядок вхождения элементов в множества безразличен. Если все элементы одного множества входят также и в другую, говорят о включении первого множества во вторую. Пустое множество включается в любую другую.

Пример:

В этом примере множества s1 и s2 эквивалентны, а множество s3 включается в s2, но не эквивалентна ей.

Читать  Составление линейных таблиц – Задача упорядочения линейной таблицы

Описание типа множества имеет вид:

  • <Имя типа> = set of <базовый тип>;

Где <имя типа> — правильный идентификатор; set и of — зарезервированные слова (множество из) <Базовый тип> — базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме Word, Integer, LongInt.

Над множествами определены следующие операции:

  • * Пересечения множеств; результат содержит элементы, общие для обоих множеств; например, s4 * s6 содержит [3] бы s4 * s5 — пустое множество.
  • + Объединение множеств; результат содержит элементы с первого множества, дополненные недостающими элементами второго множества. s4 + s5 содержит [0,1,2,3,4,5,6], а s5 + s6 содержит [3,4,5,6,7,8,9]
  • Разность множеств; содержит элементы с первого множества, не относящихся второй. s6-s5 содержит [3,6,7,8,9], a s4-s5 содержит [0,1,2,3,6]
  • = Проверка эквивалентности; возвращает True, если обе множества эквивалентны.
  • <>   Проверка неэквивалентности; возвращает True, если обе множества эквивалентны.
  • <= Проверка вхождения; возвращает True, если первая множество включена в другую.
  • => Проверка вхождения; возвращает True, если вторая множество включена в первую.

IN Проверка принадлежности; в этой бинарной операции первый элемент — выражение, а второй — множество того же типа: возвращает True, если выражение имеет значение, принадлежащее множественном числе:

  • 3 in s6 возвращает true
  • 2 * 2 in s1 возвращает false

INCLUDE — включает новый элемент в множество. Обращение к процедуре:

Include (S, I)

Где S — множество, состоящее из элементов базового типа TSetBase, а I — элемент типа TSetBase, который необходимо включить в множество.

Читать  Строки Паскаль – Тип STRING для обработки текстов

EXCLUDE — исключает элемент из множества.

Exclude (S, I)

В отличие от операций + и -, реализующих аналогичные действия над двумя множествами, эти процедуры (INCLUDE и EXCLUDE) оптимизированы для работы с одиночными элементами множества и поэтому отличаются высокой скоростью исполнения.

[Всего голосов: 3    Средний: 5/5]