Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
28_-_2_.doc
Скачиваний:
7
Добавлен:
25.09.2019
Размер:
2.83 Mб
Скачать

32. Множественные типы данных.

Множество в языке Турбо Паскаль – это ограниченный набор различных элементов одного (базового) типа (Элементы множества должны быть порядкового типа.). Базовый тип – это совокупность значений, из которых могут быть образованы множества. Мощность (количество различных элементов) не превышает 256. Значение переменной множественного типа может содержать любое количество различных элементов базового типа. Иными словами, возможными значениями переменных множественного типа являются все подмножества значений базового типа. Вещественный тип данных не используется в качестве базового (нет отношения порядка, нельзя ввести ограничения на тип).

Описание

Type <имя типа> = Set Of <тип элементов>;

Var <имя переменной множественного типа> : <имя типа>;

или

Var <имя переменной множественного типа> : Set Of <тип элементов>;

33. Операции над данными множесвенного типа.

Объединением двух данных множеств называется множество элементов, принадлежащих обоим множествам. Знак операции «+».

Примеры:

['A', 'F'] + ['B', 'D'] = ['A', 'F', 'B', 'D'];

[1..3,5,7,11] + [3..8,10,12,15..20] = [1..8,10..11,15..20];

S1:= [1..5,9], S2:= [3..7,12]. S:= S1 + S2 =[1..7,9,12];

A1:=['a'..'z']; A1:= A1+['A']. Результат – A1=['A', 'a'..'z'].

Пересечением двух данных множеств называется множество элементов, принадлежащих одновременно и первому, и второму множеству, то есть это общие элементы. Знак операции «*».

Примеры:

['A', 'F'] * ['B', 'D'] = [ ] – так как общих элементов нет;

[1..3,5,7,11] * [3..8,10,12,15..20] = [3,5,7];

S1:= [1..5,9], S2:= [3..7,12]. S:= S1*S2=[3..5].

В результате операции вычитания формируется множество, состоящее из тех элементов первого множества, которые не являются элементами второго множества. Знак операции «-».

Примеры:

['A', 'F'] – ['B', 'D'] = [ 'A', 'F' ] – общих элементов нет;

[1..3,5,7,11] – [3..8,10,12,15..20] = [1..2,11];

S1:= [1..5,9]; S2:= [3..7,12]; S:= S1 – S2 = [1..2,9];

A1:=['A'..'Z']; A1:=A1 – ['A']=['B'..'Z'].

Операция определения принадлежности элемента множеству. Эта логическая операция обозначается служебным словом In. Результат операции – значение True, если элемент принадлежит множеству, и False – в противном случае.

Примеры:

5 In [3 .. 7] дает значение True, так как 5 e [3 .. 7];

'a' In ['A' .. 'Z'] дает значение False, буквы 'а' нет среди больших латинских букв.

Операцию проверки принадлежности удобно использовать для исключения более сложных проверок. Например, оператор вида

If (ch='a') or (ch='b') or (ch='x') or (ch='y') Then s;

Переписывается в более компактной и наглядной форме:

If ch In ['a', 'b', 'x', 'y' ] Then s;

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

= – равенство (совпадение) двух множеств;

<> – неравенство двух множеств;

<=, < – проверка на вхождение первого множества во второе множество;

>=, > – проверка на вхождение второго множества в первое множество.

Первое множество меньше или равно второму (А ≤ В):

Первое множество меньше второго (А < В):