Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Teoria 158783 .doc
Скачиваний:
6
Добавлен:
25.09.2019
Размер:
1.72 Mб
Скачать

Конструктор множества

Значением переменной множественного типа является множество. Конкретные значения множественного типа задаются с помощью конструктора множества. Его синтаксис определяет Рисунок 4 .29.

<Конструктор_множества> ::=

Рисунок 4.29 – Синтаксическая диаграмма конструктора множества

Как следует из синтаксической диаграммы, конструктор множества – это список разделенных запятой выражений или диапазонов, заключенный в квадратные скобки. При указании диапазона все значения из диапазона входят в результирующее множество. Все значения из списка должны быть одинакового типа – любого скалярного, кроме вещественных. Множество не может содержать более 256 элементов.

Пример 4.2.

Примеры множеств.

[] – пустое множество (не содержит элементов);

[2, 3, 5, 7, 11] – множество простых чисел от 2 до 11.

[‘A’ .. ‘Z’] – множество латинских букв.

[1..10, 100..110] – множество целых чисел от 1 до 10 и от 100 до 110.

[Pn, Vt, Sr] – множество из 3-х элементов перечислимого типа.

[X .. 5*X] – множество целых чисел от текущего значения X до значения выражения 5*X.

Конструктор множества – это фактически множественная константа.

Порядок перечисления элементов в множестве не играет роли. Каждый элемент учитывается только один раз.

Например, множества [1, 2, 3] и [1, 3, 2] – это одно и тоже множество.

Задание множественного типа

При задании множественного типа необходимо задать базовый тип. В совокупность значений множественного типа входят все возможные множества, являющиеся произвольными комбинациями значений базового типа.

Синтаксис задания множественного типа имеет вид, который представляет Рисунок 4 .30.

Рисунок 4.30 – Синтаксическая диаграмма задания множественного типа

Как уже отмечалось, <Базовый_скалярный_тип> - это любой перенумерованный тип, значения которого попадают в диапазон 0 .. 255.

Например:

Set Of 1..3 – значениями этого множественного типа могут быть множества [], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3].

Set Of Boolean – значениями этого множественного типа могут быть множества [True], [False], [True, False], [].

В качестве базового типа может быть использовано имя типа или задание типа.

Задание типа Set аналогично представлению множества с помощью массива:

Array [<Базовый_скалярный_тип>] Of Boolean.

Обработка таких массивов в Паскале неэффективна, поэтому используется тип Set.

Пример 4.3.

Объявление множественного типа.

Type

Ned = (Pn, Vt, Sr, Ch, Pt, Sb, Vs);

Denned = Set Of Ned; {Используется имя базового типа}

Log = Set Of Boolean; {Используется имя базового типа}

Var

Den: Denned;

L1, L: Log;

I1, I2, I: Set Of 1..10; {Используется задание базового типа}

B: Boolean;

В данном примере Den, L1, L, I1, I2, I – это множественные переменные (переменные-множества).

Для присваивания значений множественным переменным используются множественные выражения.

Множественное выражение – это выражение, значением которого является множество. Частным случаем множественных выражений являются множественные переменные и конструкторы множества.

Пример 4.4.

Использование множественных выражений. Для переменных, объявленных в примере 4.3, можно записать:

L1 := [True];

L := L1; {Значение L1 к этому моменту должно быть определено}

I := [1, 3, 5];

Den := [Sub, Vos];

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]