Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Обозначение операции в Тurbo Pascal Обозначение в математике Действия Тип операндов Тип результата
+ È Объединение Совместимые типы множеств Множество
- \ Разность Совместимые типы множеств Множество
* Ç Пересечение Совместимые типы множеств Множество
= = Равенство Совместимые типы множеств Логический
< > ¹ Неравенство Совместимые типы множеств Логический
> = É Является надмножеством Совместимые типы множеств Логический
< = Ì Является подмножеством Совместимые типы множеств Логический
In Î Принадлежность Левый операнд - любой порядковый тип. Правый операнд –совместимый левому операнду тип множества. Логический

Применение операций над множествами продемонстрируем на примере с множествами символов.

Var

a, b, c, d, e, f: Set of char; {Множества символов}

begin

a:= ['A'.. 'D']; {Множество A содержит 4 элемента - ‘A’,’B’,’C’,’D’}

b:= ['C', 'D', 'R', 'W']; {Множество B содержит 4 элемента -

‘C’,’D’,’R’,’W’}

c:= ['C', 'D']; {Множество C содержит 2 элемента – ’C’,’D’}

d:= a + b; {ОБЪЕДИНЕНИЕ: множество D содержит все элементы множества A и все элементы множества B. Все элементы содержатся только по одному разу, т.е. множество D содержит 6 элементов - ‘A’,’B’,‘C’,’D’,’R’,’W’}

e:= a - b; { РАЗНОСТЬ: множество E содержит те элементы множества A, которых нет в множестве B. Т.е. в множество E скопированы все элементы множества A, за исключением тех, которые были и в A и в B. Множество E теперь содержит 2 элемента - ‘A’,’B’ }

f:= a * b; {ПЕРЕСЕЧЕНИЕ: множество F содержит те элементы множества A, которые есть и в множестве B. Множество F теперь содержит 2 элемента - ‘C’,’D’ }

if a = b {РАВЕНСТВО: сравниваются множества A и B. Если оба они содержат одинаковые элементы, то результат True, в противном случае – False. В данном случае A не равен B, т.к. A=[‘A’..’D’], а B=['C','D','R','W'], т.е. A=B - False}

then writeln('A=B')

else writeln('A<>B'); {Будет выведена строка ‘A<>B’}

if c <> a * b {НЕРАВЕНСТВО: сравниваются множества A и B. Если они отличаются друг от друга хотя бы одним элементом, то результат True, в противном случае – False. В данном случае C=[‘C’,’D’], и A*B=['C','D'] - т.е. в данном случае C равен A*B, следовательно, c<>a*b - False}

then writeln('C<>A*B')

else writeln('C=A*B'); {Будет выведена строка ‘C=A*B’}

if a >= c {ЯВЛЯЕТСЯ НАДМНОЖЕСТВОМ: сравниваются множества A и C. Если в множестве A содержатся все элементы множества C (причем в множестве A, кроме элементов множества C, могут быть и любые другие элементы), то результат True, в противном случае – False. В данном случае A=[‘A’..’D’], а С=['C','D'], т.е. множество A содержит все элементы множества C, следовательно, a>=c - True}

then writeln('A>=C') {Будет выведена строка ‘A>=C’}

else writeln('not A>=C');

if a<=b {ЯВЛЯЕТСЯ ПОДМНОЖЕСТВОМ: сравниваются множества A и B. Если все элементы множества A содержатся в множестве B (причем в множестве B, кроме элементов множества A, могут быть и любые другие элементы), то результат True, в противном случае – False. В данном случае A=[‘A’..’D’], а B=['C','D',’R’,’W’], т.е. все элементы множества A не содержатся в множестве B, следовательно, a<=b - False}

then writeln('A<=B')

else writeln('not A<=B'); {Будет выведена строка ‘not A<=B’}

if 'A' in A {ПРИНАДЛЕЖНОСТЬ: проверяется, содержит ли множество A элемент ‘A’. Если содержит, то результат True, в противном случае – False. В данном случае A=[‘A’..’D’], следовательно, ‘A’ содержится в множестве A. Значит, ‘A’ in A - True}

then writeln('''A'' in A') {Будет выведена строка ‘ ‘A’ in A’}

else writeln('''A'' NOT in A')

end.





Дата публикования: 2014-11-29; Прочитано: 288 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...