Значение A Выражение Результат

МНОЖЕСТВА

Значение A Выражение Результат - student2.ru Множества– это структурированный тип данных, представляющий на- бор взаимосвязанных по какому–либо признаку или признакам объектов, кото- рые можно рассматривать как единое целое. Каждый объект множества назы- вается элементом множества. Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного. Этот тип называется базо- вым типом множества. Базовый тип задается диапазоном или перечислением. Область значений типа множество – набор всевозможных подмножеств, со- ставленных из элементов базового типа.

Если базовый тип принимает 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, ...,

Значение A Выражение Результат - student2.ru т.е. любое значение в диапазоне 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 Выражение Результат
[1, 2, 3, 4] [1, 2, 3, 4] A = B True
['a'..'2'] ['b'..'2'] A = B False
['a'..'2'] ['2'..'a'] A = B True

Операция “не равно” (<>). Два множества A и B считаются не равными,

если они отличаются по мощности или по значению хотя бы одного элемента.

Значение A Значение B Выражение Результат
[1, 2, 3,]   ['a'..'2'] [3, 1, 2, 4]   ['6'..'2'] A <> B   A <> B True   True

Значение A Выражение Результат - student2.ru ['c'..'t'] ['t'..'c'] A <> BFalse

Операция “больше или равно” (>=). Используется для определения принадлежности множества. Результат операции A >= B равен True, если все элементы множества B содержатся во множестве A. В противном случае ре- зультат равен False.

Значение A Значение B Выражение Результат
[1, 2, 3, 4] ['a'..'2'] ['z','x','c'] [2, 3, 4] ['b'..'t'] ['c','x'] A >= B   A >= B   A >= B True   True   True

Операция “меньше или равно” (<=). Используется аналогично преды- дущей операции. Результат выражения A <= B равен True, если все элементы множества A содержатся во множестве B. В противном случае результат равен False.

Значение A Значение B Выражение Результат
[1, 2, 3,] ['a'..'h'] ['a'..'v'] [1, 2, 3, 4] ['2'..'a'] ['a','n','v'] A <= B   A <= B   A <= B True   True   True

Операция 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 ... .

Значение A Выражение Результат - student2.ru Часто операцию In пытаются записать с отрицанием: X not In M. Такая запись является ошибочной, т. к. две операции следуют подряд: правильная конструкция имеет вид: not (X In M).

Объединение множеств (+). Объединением массивов является третье

множество, содержащее элементы обоих множеств.

Значение A Значение B Выражение Результат
[1, 2, 3] ['A'..'D'] [ ] [1, 4, 5] ['E'..'Z'] [ ] A + B A + B A + B [1, 2, 3, 4, 5] ['A'..'Z'] [ ]

Пересечение множеств (*). Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.

Значение A Значение B Выражение Результат[1, 2, 3] [1, 4, 2, 5] A*B [1, 2] ['A'..'Z'] ['B'..'R'] A*B ['B'..'R']

[] [ ] A*B []

Разность множеств (–). Разностью двух множеств является третье мно- жество, которое содержит элементы первого множества, не входящие во второе множество.

Значение A Значение B Выражение Результат
[1, 2, 3, 4]   ['a'..'z'] [3, 4, 1]   ['d'..'z'] A – B   A – B [2]   ['a'..'c']

Наши рекомендации