Множества, описание множества, конструктор множества, операции над множествами Pascal

Множество в Pascal.

Множества в Pascal
Множества в Pascal.
Множество - это совокупность однотипных элементов, рассматриваемых как единое целое.

Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Множества отличаются от массивов непостоянством количества своих элементов, а также элементы множества не пронумерованы и неупорядочены. Действия могут выполняться только над множеством в целом.

Тип элементов множества называется базовым типом. Базовый тип м.б. любым порядковым (целым, логическим, символьным, интервальным, перечисляемым). Элементы множества задаются в [] (например: [3,4,5], [1..10], [‘a’,’c’], [ ]-пустое множество). Порядок записи элементов множества не имеет значения: [1,2,3]=[3,1,2]

Описание множеств

  • в разделе переменных:
VAR <идентификатор>: set of <базовый тип>;
Например: 
VAR  a: set of OF REAL;
VAR  b: set of ‘a’..’z’;
  • в разделе типов:                 
Например:
TYPE <имя типа>  = set of <базовый тип>;
VAR <идентиф.множества>  : <идентиф.типа>;
Нельзя пользоваться операциями ввода/вывода для множественных переменных.

Множественная переменная может получить конкретное значение в результате выполнения оператора присваивания (<множеств.переменная>:=<множеств.выражение>; например: a:=[1,2,3])

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

  1. Объединение множеств - результат содержит элементы первого множества, дополненные недостающими  элементами из второго множества ([1,2,5,4,6]+[2,4,7,8]=[1,2,4,5,6,7,8])
  2. Пересечение множеств - результат содержит элементы, общие для обоих множеств ([1,2,4,7]+[3,8,2,6]=[2])
  3. Разность множеств - результат содержит элементы из первого множества, которые не принадлежат второму ([1,2,5]+[2,5,6]=[1])
  4. Операции отношения
    Множества можно сравнить между собой. Результат – истина или ложь. Можно применять все операции, кроме < и >.A=B – множества совпадают.
    A<>B – множества не совпадают.
    A<=B –все элементы множества А принадлежат множеству В.
    A>=B –все элементы множества B принадлежат множеству A.
  5. Jперация вхождения устанавливает связь между множеством и скалярной величиной, тип которой совпадает с базовым типом множества (x IN M, где x-скалярная величина, M-множество), например: 4 IN M

Вывод множеств

  1. Можно из множества сформировать строку, а потом ее вывести
    For c:='a' To 'z' Do
      If (c In M) Then writeln(c);
    
  2. Вывод по символам