![]() |
![]() ![]() |
![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
3. Операции над множествами. В Турбо Паскале имеются следующие операции над множествами: Все эти операции вырабатывают логическое значение True или False в
зависимости от успеха проверки. Под объединением множеств А и В (А + В) понимают множество, состоящее из элементов, принадлежащих множествам А и В. Под пересечением множеств А и В (А * В) понимают множество, состоящее из элементов, принадлежащих одновременно множествам А и В. Под вычитанием множеств А и В (А - В) понимают множество, состоящее
из тех элементов множества А, которые не принадлежат множеству В.
Рассмотрим каждую из этих операций. Пусть при этом S1 и S2 - два однотипных множества. 3.1. Равенство и неравенство. S1 = S2 тогда и только тогда, когда S1 и S2 содержат одни и те же
элементы. Если S1 и S2 отличаются хотя бы одним элементом, то S1 <>
S2
3.2. Включение множества.S1 <= S2 (S2 >= S1) принимает значение True (истинно), когда все элементы S1 являются также элементами S2, а в противном случае - принимает значение False (ложно).
3.3. Проверка принадлежности.Выражение X in S1 принимает значение True, если X принадлежит множеству S1, а в противном случае - принимает значение False. Тип переменной X должен быть таким же, что и базовый тип элементов множества S1.
3.4. Присваивание значения.Оператор S1 := S2; означает, что переменной S1 типа set (множество) присваивается текущее значение множества S2. Вместо S2 можно использовать выражение типа set. 3.5. Объединение множеств. Множество S1 + S2 содержит элементы, которые принадлежат либо S1,
либо S2, либо тому, и другому.
3.6. Пересечение множеств. Множество S1 * S2 содержит элементы, которые принадлежат как S1, так
и S2.
3.7. Дополнение множества. Множество S1 - S2 содержит элементы из S1, которые принадлежат
S2.
Использование в программе данных типа set дает ряд преимуществ:
значительно упрощаются сложные операторы if, увеличивается степень наглядности и
понимания алгоритма решения задачи, экономится память, время компиляции и
выполнения. Например, оператор вида: Следует заметить, что второй вариант более эффективен с точки зрения быстродействия. Имеются и отрицательные моменты, основной из них - отсутствие в языке
Паскаль средств ввода-вывода элементов множества, поэтому программист сам должен
писать соответствующие процедуры. В отличие от массивов к элементам множества нет прямого доступа (по индексам этих элементов, как в массивах). Поэтому ввод и вывод множеств осуществляется с использованием операций объединения + (при вводе) и проверки принадлежности in (при выводе). Турбо Паскаль позволяет определять кроме переменных типа set (в разделе var) константы типа
set (в разделе const). Общая
форма описания таких констант имеет следующий вид: Допустимо также использование типизованных констант типа set: |
![]() ![]() ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© Copyright(c) 2004 Amro Group. All rights reserved |
|