КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Выражения над множествами
Переменные множественного типа могут быть слева и справа от знака присваивания: =, если они принадлежат идентичным типам: А:= В; где А – переменная типа множества; В – выражение множественного типа. Значения множественного типа в процессе обработки данных формируются с помощью выражений над множествами. Операндами выражений могут быть переменные и константы (конструкторы) множественного типа. Примеры операторов присваивания значений переменным-множествам: SEZON:= [];... SEZON:= [ VESNA, ZIMA ]; DNI:= [ 14, 19 ];.... А:= [ 18, 45 ];.. А:= А + В – [ 25, 31 ]; В выражениях типа множества допустимы операции: (+) – объединения (сложения) множеств, (–) – разности (вычитания) множеств, (*) – пересечения (умножения) множеств. Объединением двух множеств (A + B) является множество, состоящее из элементов, входящих хотя бы в одно из множеств. Разностью двух множеств (А – B) является множество, состоящее из элементов множества А, не входящих в множество В. Пересечением двух множеств (А * В) является множество, состоящее из элементов, одновременно входящих в множество Аив множество В. Примеры операторов присваивания и выражений над множествами: VAR А, В, С: SET OF BYTE;... А:= [1.. 5 ]; В:= [ 3, 4, 7]; С:=А+В; {С=[1..5,7]} С:=А-В; {С=[1,2,5] } С:= А * В; { С = [ 3, 4 ] } Над значениями множественного типа допустимы операции отношения и принадлежности: = – проверка эквивалентности множеств; <> – проверка неэквивалентности множеств; <= – проверка вхождения; >= – проверка включения; IN – проверка принадлежности. Например: А <= В – А входит в В? В >= А – В включает (содержит) А? Выбор одной из двух последних операций зависит от смысла проверки. Функции этих операций идентичны. Операндами операций отношения над множествами могут быть выражения над множествами. Результатом операций отношения является логическое значение TRUE или FALSE. Примеры операций отношения над множествами. В результате выполнения всех операций значение R = TRUE. Выражения над множествами. VAR M: SET OF CHAR; R: BOOLEAN; BEGIN { Сравнение конструкторов: } R:= [ 'А', 'Е' ] = [ ‘Е’, 'А' ]; R:= [ 'А', 'Е’ ] <> [ ' I ’, 'О' ]; R:= [ 'А’, 'С’ ] <= [ 'А’, 'В', 'С’, 'D' ]; R:= [] <= [ 'А’ ]; M:= [] + [ 'А' ]; { М = ['А']; } { Сравнение конструктора и переменной: } R:= [ 'А’.. 'О' ] >= М; M:= М + [ 'Е', 'I’ ]; { М = ['А', ' Е’, ' I ']; M:= М – [ ' I ' ]; { М = ['А', 'Е']; } Для работы со множествами можно использовать операцию отношения типа "принадлежности". Форма операции: A IN В где А – выражение любого ординального типа (в том числе константа или переменная), результат которого совместим с базовым типом множества В; В – выражение над множеством, в частном случае константа или переменная типа множества. Операция IN определяет принадлежность (вхождение) А к В. Она используется для определения наличия конкретного значения А в В – множество того же типа, что и А. Если А входит в В, то результат этого отношения равен TRUE, а если не входит, то – FALSE. Например: IF I IN [ 1.. 4 ] THEN... Расширить возможности работы со множествами, содержащими большое количество элементов, можно, используя массивы множеств. Множество может быть элементом массива или записи. Для добавления или исключения элемента из множества используются операции: + (объединения) и – (вычитания). На машинном уровне это вызывает достаточно громоздкий машинный код. Для устранения этого недостатка в 7-й версии Паскаля введены 2 стандартные процедуры с заголовками: procedure Include (var S: set of T; Elem: T); procedure Exclude (var S: set of T; Elem: T); где Т – базовый тип множества. Вызовы этих процедур компилируются всего в одну машинную команду. Например: var S: set of byte; begin... { Без процедур: } S:= S + [123]; S:= S – [45];... { С помощью процедур: } Include (S, 123); Exclude (S, 45);
Дата добавления: 2014-01-06; Просмотров: 760; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |