Для множеств определены следующие операции:
+ объединение множеств;
- разность множеств;
* пересечение множеств;
= проверка эквивалентности двух множеств;
<> проверка неэквивалентности двух множеств;
<= проверка того, является ли левое множество подмножеством правого множества;
>= проверка того, является ли правое множество подмножеством левого множества;
in проверка того, входит ли элемент, указанный слева, в множество, указанное справа.
Результатом операций объединения, разности или пересечения является соответствующее множество, остальные операции дают результат логического типа.
Операция (=)
два множества А и В равны, если они состоят из одних и тех же элементов, порядок следования элементов значения не имеет.
Операция (<>)
два множества А и В не равны, если они отличаются по мощности (количеству элементов) или по значению хотя бы одного элемента.
Операция (>=)
используется для определения принадлежности множеств. Результат операции А>=В – TRUE, если все элементы множества В содержатся в множестве А.
Операция вхождения (IN)
используется для проверки принадлежности какого либо значения указанному множеству. Обычно применяется в условных операторах.
Пример
Оператор
If (a = 1) or (a = 2) or (a = 3) then …
эквивалентен оператору
If a in [1,2,3] then …
x not in M {ошибка}
not (x in M)
Операция объединения множеств (+)
объединением двух множеств является третье множество, содержащее элементы обоих множеств без дублирования.
Операция пересечения (*)
пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.
Операция разности (-)
разностью двух множеств является третье множество, элементы которого не входят во второе множество, но содержатся в первом.
В случае, когда надо удалить один элемент из множества необходимо заключить в скобки [ ], т.е. «изобразить» множество из одного элемента.
Аналогично действуют и в случае добавления элемента в множество.
Пример. Проверка вводимых символов
Напишем программу, которая вводит строку символов, состоящую из латинских букв, цифр и пробелов. При этом осуществим проверку правильности введенных символов.
program EXAMPLE31; {Проверка ВВОДИМЫХ СИМВОЛОВ}
var
Str1: string; {Переменная для ввода строки}
L: Byte; {Текущий элемент строки}
Tru: Boolean; {Признак правильной строки}
Ch: Char; {Переменная для ввода ответа}
begin
repeat {Начало цикла}
WriteLn('Введите строку1'); {Запрос на ввод строки}
ReadLn(Str1); {Чтение строки}
L := Length(Str1); {Число введенных символов}
Tru := L > 0; {True, если непустая строка}
while Tru and (L > 0) do {Проверка с конца строки}
begin
Tru:=Str1[L] in ['0'..'9', 'A'..'Z', 'a'..'z', ‘ ‘]; {Проверка допустимости символа}
Dec(L); {Предыдущий символ}
end;
if Tru then
WriteLn('Правильная строка')
else
WriteLn('Неправильная строка');
Write('Повторить (Yes/No)? '); {Запрос о повторении действий}
ReadLn(Ch); {Чтение ответа}
until UpCase(Ch) <>'Y'; {Конец цикла с проверкой условия выхода}
end.
|