Кодинг
★ Рубрика: Кодинг
★ Тема: Pascal

Множества в Паскале

Множество - это совокупность элементов одного и того же перечисляемого типа. Оно задается перечислением элементов. Например, множество четных чисел от 0 до 10 в математике записывается так:
{ 0,2,4,6,8,10 }
В Паскале оно представляется аналогично, только заключается в квадратные скобки:
[0,2,4,6,8,10]
Пример.
Type
Days = (Sunday, Monday, Tuesday, Wednesday, Thursday,
 Friday, Saturday);
Bukva = Set of ’a’..’z’;
Var
Sim : Bukva;
Chislo : Set of 1..20;
WeekEnd, Rabdny, ObDni : Set of Days;
При использовании последнего описания можно выполнять присваивания вида:
Weekend := [Saturday, Sunday];
Мощность множества — это максимальное количество элементов в нём. В Паскале оно ограничивается числом 256. Множество может не содержать ни одного элемента. Оно называется пустым и обозначается следующим образом: [ ]. По определению пустое множество является компонентой любого множества.

Для множеств допустимы следующие операции:
1) сравнение:
а) на равенство двух множеств (совпадение множеств);
б) на вхождение одного множества в другое;
в) на принадлежность элемента множеству;
2) объединение;
3) пересечение;
4) вычитание.

1) Результат операций сравнения — булевский.

1.а) Операции сравнения на равенство выполняются, как и для других типов, например:
If ObDny = WeekEnd Then
Множества равны, если они содержат одни и те же константы.

1.б) Проверка на вхождение выполняется с помощью знаков: <= или >=. Выражение S1 <= S2 проверяет, все ли элементы множества S1 входят в S2, а S1 >= S2, содержит ли S1 все элементы из S2.

Пример.
[1,2,3] = [2,3,1] - результат True
[’A’, ’C’] <= [’A’, ’B’, ’C’, ’D’] - результат True
[ ] <= [’A’] - результат True - пустое множество входит в любое другое.
1.в) Для определения принадлежности некоторого элемента множеству в Паскале используется операция In которая дает значение True, если элемент принадлежит множеству.

Пример.
’А’ In [’A’,’B’,’Г’,’Д’] - результат True
’A’ In [’X’,’Y’,’Z’] - результат False
S In [’A’..’Z’] - результат True, если S - латинская буква.
Операция In может эффективно применяться для исключения сложных проверок.

Пример.

Вместо условия
(Ch=’A’) Or (Ch=’E’) Or (Ch=’I’) Or (Ch=’S’) Or (Ch=’X’);
можно записать более простое
 Ch In [’A’,’E’,’I’,’S’,’X’];
2) Объединением двух множеств является множество, составленное из элементов, входящих в оба исходных. Операция объединения обозначается знаком +.

Пример.
[’A’,’B’,’C’] + [’D’,’E’] = [’A’,’B’,’C’,’D’,’E’]
[’A’,’B’] + [’A’,’E’] = [’A’,’B’,’E’]
3) Пересечением двух множеств является множество, состоящее из элементов, которые входят одновременно в оба исходных. Знак операции пересечения *.

Пример.
[’A’,’B’,’C’] * [’A’,’C’] = [’A’,’C’]
[’A’,’B’] * [’X’,’Y’] = [ ]
[ ]*[ ] = [ ]
4) Разностью двух множеств является множество, состоящее из элементов первого, которые не входят во второе. Знак операции вычитания: –.

Пример.
[’A’,’B’,’C’] – [’A’,’C’] = [’B’]
[’A’,’B’] – [ ] = [’A’,’B’]
[’A’,’B’] – [’A’,’B’] = [ ].
 Похожие публикации: Pascal

Войти и комментировать [ Вход | Регистрация ]