Название

Форма

Комментарий

=

Проверка на равенство

S1=S2

Результатом будет логическое равенство значение, равное True, если S1 и S2 состоят из одинаковых элементов независимо от порядка следования, и False в противном случае

<>

Проверка на неравенство

S1<>S2

Результатом будет логическое неравенство значение, равное True, если S1 и S2 отличаются хотя бы одним элементом, False в противном случае

<=

Проверка на подмножество

S1<=S2

Результатом будет логическое подмножество значение, равное True, если все элементы S1 содержатся и в S2 независимо от их порядка следования, и равное False в противном случае

>=

Проверка на надмножество

S1>=S2

Результатом будет логическое надмножество значение, равное True, если все элементы S2 содержатся в S1 , и False в противном случае

- 145 -

in

Проверка вхождения элемента в множество

E in [...] E in S1

Результатом будет логическое значение True, если значение E принадлежит базовому типу множества и входит в множество [ ... ] (S1). Если множество не содержит в себе значения E, то результатом будет False

+

Объединение множеств

S1+S2

Результатом объединения будет множеств множество, полученное слиянием элементов этих множеств и исключением дублированных элементов

-

Разность множеств

S1-S2

Результатом операции взятия разности S1-S2 будет множество, составленное из элементов, входящих в S1, но не входящих в S2

*

Пересечение множеств

S1*S2

Результатом пересечения будет множеств множество, состоящее только из тех элементов S1 и S2, которые содержатся одновременно и в S1, и в S2

Как видно, операции над множествами разделяются на операции сопоставления множеств и операции, создающие производные множества. И те, и другие будут работать лишь в том случае, когда их операнды сопоставимы. Это означает, что в операциях могут участвовать только те множества, которые построены на одном базовом типе (так, несопоставимы множества значений типа Char и типа Byte).

Операции сопоставления всегда двухместные. Результатом операции сопоставления будет логическое значение True или False. В этом смысле они близки операциям сравнения. Рассмотрим некоторые примеры сопоставлений (в них X — обозначение переменной базового типа множества, a S — обозначение некоего непустого сопоставимого множества) (рис. 7.2).

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

if Ch in ['а', 'х', 'А', 'Х'] then ...

if J in [ 100..200 ] then ...

В подобных конструкциях можно указывать множество-константу

- 146 -

ИСТИННО

ЛОЖНО

[ 1, 2, 3] = [ 1, 3, 2]

[ 5, X ] = [ X, 5 ]

[] = []

[ 1, 2 ] <> [ 1 ]

[ 5, X ] <> [ 5, Х+1 ]

['a','b'] <= [ 'a'..'z' ]

[] >= S

[X, Х+1] >= [ Х+1 ]

5 in [0..5]

[] in [0..5]

[ 1, 2 ] = [1]

[ 5, X ] = 5, Х+1 ]

[] = [1]

[ 1, 2, 3] <> [1, 3, 2]

[ 5, X ] <> X, 5 ]

['0'..'9']<=[a]…[z]

[]>=S

[1..3]>=[0..4]

X in [X-1, X-2]

X in []

Рис. 7.2

справа от оператора in, не вводя промежуточных описаний переменных-множеств .

Перейти на страницу:

Поиск

Похожие книги