Основы программирования на C++, PASCAL
3.18. Понятие множества. Множественный тип данных
Одним из фундаментальных разделов математики является теория множеств. Некоторые моменты математического аппарата этой теории реализованы в Паскале через множественный тип данных (множества).
Множеством называется совокупность однотипных элементов, рассматриваемых как единое целое. В Паскале могут быть только конечные множества. В Турбо Паскале множество может содержать от 0 до 255 элементов.
В отличие от элементов массива элементы множества не пронумерованы, не упорядочены. Каждый отдельный элемент множества не идентифицируется, и с ним нельзя выполнить какие-либо действия. Действия могут выполняться только над множеством в целом.
Тип элементов множества называется базовым типом. Базовый тип может быть любым скалярным, за исключением типа Real.
Конструктор множества. Конкретные значения множества задаются с помощью конструктора множества, представляющего собой список элементов, заключенный в квадратные скобки. Сами элементы могут быть либо константами, либо выражениями базового типа. Вот несколько примеров задания множеств с помощью конструктора:
[3,4,7,9,12] — множество из пяти целых чисел;
[1.. 100] — множество целых чисел от 1 до 100;
['a','b','c'] — множество, содержащее три литеры а, Ь, с;
['a'.,'z','?','!'] — множество, содержащее все прописные латинские буквы, а также знаки ? и !.
Символы [] обозначают пустое множество, т.е. множество, не содержащее никаких элементов.
Не имеет значения порядок записи элементов множества внутри конструктора. Например, [1,2,3] и [3,2,1] эквивалентные множества.
Каждый элемент в множестве учитывается только один раз. Поэтому множество [1,2,3,4,2,3,4,5] эквивалентно [1.. 5 ].
Переменные множественного типа описываются так:
Var <идентификатор>: Set Of <базовый тип>
Например:
Var A,D: Set Of Byte;
В: Set Of ' a' . . ' z;
C: Set Of Boolean;
Нельзя вводить значения во множественную переменную оператором ввода и выводить оператором вывода. Множественная переменная может получить конкретное значение только в результате выполнения оператора присваивания следующего формата:
<множественная переменная>: <множественное выражение>
Например:
А:=[50,100,150,200];
B:=['m', 'n','k'];
С:=[True,False] ;
D:=A;
Кроме того, выражения могут включать в себя операции над множествами.