Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_po_programmirovaniyu_k_ekzamenu_33_1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
573.95 Кб
Скачать

Билет 21 Множества (определение, примеры, операции).

Множества в Паскале - это наборы элементов перечислимого типа. Для множественных типов существуют следующие группы операций: 1) Объединение (А+В), пересечение (А*В) и вычитание (А-В) множеств. 2) Проверка принадлежности элементов множеству(Служебное слово ‘in’), правый операнд должен быть множеством, а левый – значением базового типа множества(операции носят логический характер). 3) Проверка на равенство и неравенство множеств. 4) Проверка на вхождение (принадлежности) одного множества в другое. Эти бинарные операции также имеют множественный смысл и обозначаются следующим образом: ‘=’- равенство или совпадение; ‘<>’- неравенство; ‘<=’- проверка на вхождение множества из левого операнда во множество из правого операнда. Примеры: [1, 2, 3] = [1, 2] – False; [1, 2, 3] >= [1, 2] – True; [1, 2, 3] <> [1, 2, 4] – True.

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

Билет 22 Представления множеств, примеры использования.

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

Пример

type Digits = set of 1..5 ;

Var s : Digits;

Возможные значения s = "пусто"; 1,2; 1, 2, 3; 1, 2, 3, 4, 5;

Базовый тип множества: Скалярный, как видно из синтаксической диаграммы. Однако Turbo Pascal допускает в качестве базовых типов для множества упорядоченные типы не более, чем 256 различными значениями. Причем, для целых типов эти значения должны лежать в диапазоне [0..255] . Таким ограничениями удовлетворяют только стандартные типы: Byte, Char, перечислимые типы, а так же ограниченные типы, образованные из них.

Пример.

Type ElemColor = (Red, Yellow, Blue);

Color = set of ElemColor;

Var MyColor : Color;

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

Изображение

[ ] – пустое множество [1,2,3] – выражение 1 [Red, Yellow]

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

[m .. n], ['A' .. 'Z', 'a' .. 'z', chr(digit +48)], [1,5,10 .. k mod 12,13]

Для множественных типов существуют группы операций:

объединения, пересечения и вычитания множеств; проверка принадлежности элемента множеству; проверка на равенство и неравенство множеств; проверка на вхождение (принадлежность) одного множества в другое.

1)объединение А+В – множество, состоящее из элементов, принадлежащих множествам А и В.

а)пересечение множеств А*В – множество, состоящее из элементов, принадлежащих одновременно А и В;

б)вычитание А-В – множество из элементов множества А, которые не принадлежат множеству В

Примеры.

[1,2]+[3,4]=[1,2,3,4] [1..10]*[5..15]=[5..10] [1..10]+[5..15]=[1..15] [1,2]*[3,4]=[ ] [1..10] – [5..15]=[1..4]

2) проверка принадлежности in – правый операнд должен быть множество, а левый – значением базового типа множества, операция логическая.

Пример. 2 in [1..10,12] = True 5 in [1,2,7,10] = False

3) проверка на равенство-неравенство и вхождение – бинарные операции также имеют теоретико-множественный смысл и обозначаются:

= - равенство или совпадение 2-х множеств <> - неравенство

<= - проверка на вхождение множества из левого операнда в множество из правого операнда

>= - проверка на вхождение множества из правого операнда в множество из левого операнда.

Примеры.

[1,2,3]=[1,2] – False [1,2,3]>=[1,2] – True [S]<=[1..10] [[1,2,3]<>[1,2,4]

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