Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
29_Ae1.doc
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
302 Кб
Скачать
☆

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

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

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

В качестве базовых типов могут использоваться: перечислимые типы данных, символьный и байтовый типы или диапазонные типы на их основе.

Такие ограничения связаны с формой представления множества в языке и объясняются тем, что функция Ord для элементов используемого базового типа должна быть в пределах от 0 до 255.

Множество имеет зарезервированное слово set of и вводится следующим описанием

Type

< имя типа > = set of < имя базового типа >;

Var

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

Рассмотрите примеры описаний множеств:

Type

SetByte = set of byte; {множество 1, определённое над типом byte}

SetChisla = set of 10 .. 20; {множество 2, определённое в диапазоне от 10 до 20}

Symbol = set of char; {множество, определённое на множестве символов}

Month = (January, February, March, April, May, June, July, August, September, October, November, December);

Season = set of Month; {тип множества, определённый на базе перечислимого типа Month}

Var

Letter, Digits, Sign : Symbol; {множествa, определённые над символьным типом}

Winter, Spring, Summer, Autumn, Vacation, WarmSeason : Season;

Index : SetChisla=[12, 15, 17];

Operation : set of (Plus, Minus, Mult, Divid);

Param : set of 0..9=[0, 2, 4, 6, 8];

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

Данные типа множество позволяют хранить ограниченное число значений определённого типа без определённого порядка. Повторение значений, как правило, недопустимо. За исключением того, что множество в программировании конечно, оно в общем соответствует концепции математического множества. Для этого типа в языках программирования обычно предусмотрены стандартные операции над множествами. В языке Паскаль множество — простой тип данных, хранящий информацию о присутствии в множестве объектов любого счетного типа. Мощность этого типа определяет размер множества — 1 бит на элемент. В Turbo Pascal есть ограничение на 256 элементов, в некоторых других реализациях это ограничение ослаблено.

Пример работы с множествами:

type

{определяем базовые для множеств перечислимый тип и тип-диапазон}

colors = (red,green,blue);

smallnumbers = 0..10;

{определяем множества из наших типов}

colorset = set of colors;

numberset = set of smallmunbers;

{можно и не задавать тип отдельно}

anothernumberset = set of 0..20;

{объявляем переменные типа множеств}

var nset1,nset2,nset3:smallnumbers;

cset:colorset;

begin

nset1 := [0,2,4,6,8,10]; {задаем в виде конструктора множества}

cset := [reb,blue]; {простым перечислением элементов}

nset2 := [1,3,9,7,5]; {порядок перечисления неважен}

nset3 := []; {пустое множество}

nset1 := [0..5]; {возможно задавать элементы диапазоном}

nset3 := nset1 + nset2; {объединение}

nset3 := nset1 * nset2; {пересечение}

nset3 := nset1 - nset2; {разность}

if (5 in set2) or {проверка на вхождение элемента}

(green in cset) then

...