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

При работе с множествами допускается использование операций отношения =, <>, >=, <=, объединения, пересечения, разности множеств и операции in. Результатом выражений с применением этих операций является значение True или False.

Операция «не равно» (<>). Два множества А и В считаются неравными, если они отличаются по мощности или по значению хотя бы одного элемента.

Операция «равно» (=). Два множества А и В считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет.

Значение А

Значение В

Выражение

Результат

[1,2,3,4] [1,2,3,4] А=В True
[‘a’,’b’,’c’] [‘c’,’a’] А=В False
[‘a’..’z’] [‘z’..’a’] А=В True

Операция «не равно» (<>). Два множества А и В считаются неравными, если они отличаются по мощности или по значению хотя бы одного элемента.

Значение А

Значение В

Выражение

Результат

[1,2,3] [3,1,2,4] А<>В True
[‘c’..’f’] [‘t’..’c’] А<>В False

Операция «больше или равно» (>=). Эта операция используется для определения принадлежности множеств. Результат операции А >= В равен True, если все элементы множества В содержатся в множестве А. В противном случае результат равен False.

Значение А

Значение В

Выражение

Результат

[1,2,3,4] [2,3,4] А>=В True
[‘a’..’z’] [‘b’..’t’] А>=В True

Операция «меньше или равно» (<=). Эта операция используется аналогично предыдущей операции, но результат выражения А <= В равен True, если все элементы множества А содержатся в множестве В. В противном случае результат равен False.

Значение А

Значение В

Выражение

Результат

[1,2,3] [1,2,3,4] А<=В True
[‘d’..’h’] [‘z’..’a’] А<=В True

Операция in. Эта операция используется для проверки принадлежности какого-либо значения указанному множеству. Обычно применяется в условных операторах.

При использовании операции in проверяемое на принадлежность значение и множество в квадратных скобках не обязательно предварительно описывать в разделе описаний. Операция in позволяет эффективно и наглядно производить сложные проверки условий, заменяя иногда десятки других операций.

Например, выражение if (a=l) or (a=2) or (a=3) or (a=4) or (a=5) or (а=б) then… можно заменить более коротким выражением if a in [1..6] then… .

Часто операцию in пытаются записать с отрицанием: X NOT in M. Такая запись является ошибочной, так как две операции следуют подряд; правильная инструкция имеет вид NOT (X in M).

Объединение множеств (+). Объединением двух множеств является третье множество, содержащее элементы обоих множеств.

Значение А

Значение В

Выражение

Результат

[1,2,3] [1,4,5] А+В [1,2,3,4,5]

Пересечение множеств (*). Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.

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

Использование в программе данных типа set дает ряд преимуществ: значительно упрощаются сложные операторы if, увеличивается степень наглядности программы и понимания алгоритма решения задачи, экономятся память, время компиляции и выполнения. Имеются и отрицательные моменты, основной из них – отсутствие в языке Pascal средств ввода-вывода элементов множества, поэтому программист сам должен писать соответствующие процедуры.

Добавить комментарий