Значение A Выражение Результат
МНОЖЕСТВА
Множества– это структурированный тип данных, представляющий на- бор взаимосвязанных по какому–либо признаку или признакам объектов, кото- рые можно рассматривать как единое целое. Каждый объект множества назы- вается элементом множества. Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного. Этот тип называется базо- вым типом множества. Базовый тип задается диапазоном или перечислением. Область значений типа множество – набор всевозможных подмножеств, со- ставленных из элементов базового типа.
Если базовый тип принимает n значений, то тип множество для него бу- дет иметь 2nвариантов значений. В выражениях на языке Turbo Pascal значе- ния элементов множества указываются в квадратных скобках: [1, 2, 3, 4], ['a', 'b', 'c', 'd'], ['a'...'z'].
Если множество не имеет элементов, оно называется пустым и обознача- ется как [ ]. Для описания множественного типа используется словосочетание Set of (множество из ...). Для задания типа множество следует указать элементы этого множества, как правило, в виде перечисления или диапазона, например:
Пример 1.
Type Alfa = Set of 'A'..'Z'; Count = Set of (Plus, Minus, Mult, Divid); Ten = Set of 0..9; Number=Set of'0'..'9';
Введя тип множество, можно задать переменные или типизированные константы этого типа. При задании значений константе типа множество эле- менты константы задаются перечислением через запятую элементов, помещен- ных в квадратные скобки. Например, для введенных выше типов можно задать такие переменные и типизированные константы:
Пример 2.
Var CharVal: Set of 'A'..'Z'; Operac: Sет of (Plus, Minus, Mult, Divid); Num: Ten; Const Index: Set of 0..9 = [0, 2, 4, 6, 8]; Digit: Set of '0'..'9' = ['0'..'9'];
Переменная CharVal может принимать значения 'A', 'B', 'C', ... – любое значение от 'A' до 'Z', переменная Num может принимать значение 0, 1, 2, 3, ...,
т.е. любое значение в диапазоне 0..9. Попытка присвоить другие значения вы- зовет программное прерывание. Переменной или типизированной константе типа множество можно в программе присвоить то или иное значение. Обычно значение задается с помощью конструктора множества. Конструктор задает множество элементов с помощью перечисления в квадратных скобках выраже- ний, значения которых дают элементы множества. Допустимо использовать диапазоны элементов. Следующие структуры являются конструкторами мно- жеств (пример 3).
Пример 3.
[Plus, Minus] [1..K mod 12,15] [Cur(0)..Cur(32),'A','B']
В каждое множество включается и так называемое пустое множество [ ], не содержащее никаких элементов. Конструктор множества можно использо- вать и непосредственно в операциях над множествами.
Количество элементов (мощность) множества в Turbo Pascal не может быть больше 256, а порядковые номера элементов (т.е. значение функции Ord) должны находиться в пределах от 0 до 255. Контроль диапазонов осуществля- ется директивой {$R+}. Объем памяти, занимаемый одним элементом множе- ства, составляет 1 байт.
При работе co множествами Turbo Pascal допускает использование опе- раций “=”, “<>”, “>=”, “<=”, объединения (+), пересечения (*), разности (–) и операции In. Результатом выражений с применением этих операций является значение True или False, в зависимости от того, истинно это выражение или ложно.
Операция “равно” (=). Два множества A и B считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет.
Операция “не равно” (<>). Два множества A и B считаются не равными, если они отличаются по мощности или по значению хотя бы одного элемента.
['c'..'t'] ['t'..'c'] A <> BFalse
Операция “больше или равно” (>=). Используется для определения принадлежности множества. Результат операции A >= B равен True, если все элементы множества B содержатся во множестве A. В противном случае ре- зультат равен False.
Операция “меньше или равно” (<=). Используется аналогично преды- дущей операции. Результат выражения A <= B равен True, если все элементы множества A содержатся во множестве B. В противном случае результат равен False.
Операция In. Используется для проверки принадлежности какого-либо значения указанному множеству. Обычно применяется в условных операциях.
Значение A Выражение Результат
2 if A in [1, 2, 3] then… True
'v' if A in ['a'..'n'] then… False
x1 if A in [x0, x1, x2, x3] then… True
При использовании операции In проверяемое на принадлежность значе- ние и множество в квадратных скобках не обязательно описывать в разделе объявлений.
Операция In позволяет эффективно производить сложные проверки ус- ловий, заменяя иногда десятки операций. Например, выражение
if (a=1) or (a=2) or (a=3) or (a=4) or (a=4) or (a=5) then...
можно заменить более коротким
if a In [1..5] then ... .
Часто операцию In пытаются записать с отрицанием: X not In M. Такая запись является ошибочной, т. к. две операции следуют подряд: правильная конструкция имеет вид: not (X In M).
Объединение множеств (+). Объединением массивов является третье множество, содержащее элементы обоих множеств.
Пересечение множеств (*). Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.
Значение A Значение B Выражение Результат[1, 2, 3] [1, 4, 2, 5] A*B [1, 2] ['A'..'Z'] ['B'..'R'] A*B ['B'..'R'] [] [ ] A*B []
Разность множеств (–). Разностью двух множеств является третье мно- жество, которое содержит элементы первого множества, не входящие во второе множество.
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (663)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |