Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции+Pascal.doc
Скачиваний:
31
Добавлен:
02.12.2018
Размер:
647.17 Кб
Скачать

7. Множества

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

[1,2,3,4]; [‘f’,’d’,’c.’]; [‘a’..’z’]

Формат:

Type

<имя типа>= set of <элемент1, элемент2, …,элементn>;

Var

<идентификатор>:<имя типа>;

или

Var

<идентификатор>:set of <элемент1, элемент2, …,элементn >;

Например:

Type

Pros=set of (1,3,5,7,13);

Nom=set of 1..31;

Var

Pr: Pros;

N: Nom;

Buk: set of (‘A’,’S’, ‘Z’,’J’);

S: Set Of Byte;

Количество элементов множества не более 256. Объем памяти, занимаемый одним элементом множества, составляет 1 бит.

7. 1 Операции над множествами

С множествами допускаются все операции отношения (=, <>, >=, <=), операции объединения, пересечения, разности множеств и операция in.

Результат выражений: True, False.

Операция «=».

Значение А

Значение В

Выражение

Результат

[1,2,3,5]

[1,2,3,5]

A=B

True

[‘a’,’b’,’c’]

[‘a’,’c’]

A=B

False

[‘a’..’z’]

[‘z’..’a’]

A=B

True

Операция «<>»

Значение А

Значение В

Выражение

Результат

[1,2,3]

[1,2,3,4]

A<>B

True

[‘a’..’z’]

[‘b’..’z’]

A<>B

True

[‘a’..’n’]

[‘n’..’a’]

A<>B

False

Операция «>=». Результат операции A>=B True, если все элементы множества B содержатся в множестве A.

Значение А

Значение В

Выражение

Результат

[1,2,3,4]

[4,2,3]

A>=B

True

[‘a’..’z’]

[‘b’..’t’]

A>=B

True

Операция «<=». Результат операции A<=B True, если все элементы множества A содержатся в множестве B.

Значение А

Значение В

Выражение

Результат

[1,2,3]

[1,2,3,4]

A<=B

True

[‘d’..’h’]

[‘a’..’z’]

A<=B

True

Операция in

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

Значение А

Выражение

Результат

2

If A in [1,2,3] Then…

True

‘v’

If A in [‘a’..’n’] Then…

False

При использовании операции in множество в [ ] не обязательно описывать в разделе описаний. Операция in позволяет эффективно производить сложные проверки условий. Например:

If (A=1) OR (A=2) OR (A=3) OR (A=4) OR (A=5) OR (A=6) Then …

можно заменить:

If A in {1..6] Then …

Допускается запись:

If NOT(X in M) Then…

Объединение множеств (+)

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

Значение А

Значение В

Выражение

Результат

[1,2,3]

[1,4,5]

A+B

[1,2,3,4,5]

[ ]

[ ]

A+B

[ ]

А+В

Пересечение множеств (*)

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

Значение А

Значение В

Выражение

Результат

[1,2,3]

[1,4,2,5]

A*B

[1,2]

[‘a’..’z’]

[‘b’..’z’]

A*B

[‘b’..’z’]

[ ]

[ ]

A*B

[ ]

А*В

Разность множеств (-)

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

Значение А

Значение В

Выражение

Результат

[1,2,3,4]

[1,3,4]

A-B

[2]

[X1,X2,X3,X4]

[X4,X1]

A-B

[X2,X3]

А-В

Преимущества при использовании множеств:

  1. Упрощаются сложные операторы If.

  2. В ряде случаев экономится память, время компиляции и выполнения.

Недостаток:

Pascal не поддерживает ввод-вывод элементов множества.

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