Введение в программирование

       

Множества


язык Object Pascal предоставляет два простых типа, описывающих множества значений. Это:

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

Множество языка Object Pascal - это набор значений порядкового или перечислимого типа. Множество определяется ключевым словом set of.

Создание порядкового и перечислимого типов имеет следующее формальное описание:

Идентификатор = Начальное_значение .. Конечное_значение; Идентификатор = {Значение_i .,...}; Идентификатор = Значение_i..Значение_j; Идентификатор = set of порядковый или перечислимый тип.

Например:

type {Объявление перечислимого типа} TMyColor = {Red,Blue,Yellow}; {Объявление типа множество} TMyClr = set of TMyColor; var {Объявление переменных созданных типов} ValC1, ValC2: TMyClr; begin {Присвоение значения переменной типа множество} ValC1 := [Blue]; ValC2 := ValC1+[ Red]; end.

Начальным и конечным значением интервала для порядкового типа могут быть:

  • символы из кодовой таблицы ASCII (например, цифры или буквы);
  • любой диапазон значений ранее объявленного перечислимого типа.

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

Например:

type TMyInts = 1..500; TIntSet = set of TMyInts; {Объявление переменной типа множества} var set1: TIntSet; begin {Инициализация переменной типа множества} set1:=[1,2,3,4]; end.

Над множеством допустимы следующие операции:

  • объединение множеств (+);
  • разность (-);
  • умножение (*);
  • сравнение (<=, >=, =, <>);
  • принадлежность множеству (in).

Например:

type {Порядковый тип: значения от 1 до 9} CountType = 1..9; LowerCharType = а..я; AType = (A1, A2, A3, A4, A5); {Порядковый тип: значения A3, A4 и A5} AType3 = A3..A5; {Множество на основе порядкового типа} ATypeSet = set of AType3; {Множество LetterType } LetterType = set of 'A'..'Z'; var {Объявление переменной типа множества} aset: ATypeSet; begin {Присвоение значения переменной множественного типа} aset:= [A3] + [A4]; {Вычитание множеств} aset:= aset - [A4]; end.

Каждая переменная множественного типа может иметь значение - множество. Для изменения значений переменной множественного типа могут использоваться операции объединения (+) и разности (-) множеств.

Например:

begin set1:=set1 +[5,6]; end.

Для определения принадлежности значения некоторому множеству используется операция in.

Например:

begin if 5 in set1 then ShowMessage( 'Значение принадлежит множеству set1'); end.



Содержание раздела