Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 731; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.