Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Структурований тип даних - множина. Базовий тип елементів множини. Операції над елементами та над множинами.






Множиною в мові Pascal називається скінченний набір однотипних даних. Об'єкти, з яких складається множина, називаються її елементами. Число, що дорівнює кількості елементів множини, називається її потужністю. Від масиву множина відрізняється відсутністю індексації її елементів, а від запису — тим, що елементи множини є однотипними і не позначаються ідентифікаторами.

Найпростішим прикладом множини є неіменована множина-константа, що записується у квадратних дужках як перелік однотипних елементів. Наприклад, [0.1] — це множина, що складається з двох цілочислових елементів, a['a'..'z'] - множина, що містить усі маленькі літери латинського алфавіту — 26 символьних елементів. Максимально допустима потужність множини в мові Pascal становить 256, а мінімально допустима — 0. Множина нульової потужності, тобто множина, що не містить жодного елемента, називається порожньою і в математиці позначається символом 0. У мові Pascal порожня множина позначається як порожній перелік, тобто символами [ ].

Зауважимо, що порядок елементів у переліку є несуттєвим і кожен елемент входить до складу множини один раз. Тому, скажімо, множина [1, 2.3, 1.2, 3] еквівалентна множині [1, 2, 3], а також множинам [1, 3, 2], [2, 3, 1], [2, 1, 3], [3, 1, 2] і [3, 2, 1]. Крім констант-множин у Pascal-програмах можна використовувати й змінні множинного типу даних, до розгляду якого ми і перейдемо.

Множинний тип — це структурований тип даних, допустимими значеннями якого є деякі множини. Отже, сукупність допустимих значень такого типу даних — це є множина множин, яка не записується в оголошенні типу безпосередньо, але може бути визначена з його оголошення за певним правилом. Це правило легко зрозуміти, коли розглянути синтаксис оголошення множинного типу даних:

type < ім'я типу> = set of < базовий тип>;

Як бачимо, оголошення множинного типу даних вимагає визначення для нього деякого базового типу. Базовим може бути будь-який перелічуваний тип, крім Integer та Longlnt, а значенням множинного типу може стати довільний набір значень базового типу. Таким чином, допустимими значеннями множинного типу даних є всі можливі підмножини множини значень певного базового типу. Наведемо приклади. Припустимо, є таке оголошення множинного типу ТуреА:

type TypeA = set of 2..4;

Тоді множина допустимих значень типу ТуреА міститиме такі набори цілих чисел: {2, 3, 4}, {2, 3}, {2, 4}, {3, 4}, {2}, {3}, {4}, Ø. Отже, із значень трьохелементного базового типу можна утворити вісім множин. Постає запитання: скільки різних множин можна утворити на основі n-елементного базового типу? З відомих математичних фактів випливає, що таких множин може бути утворено 2n.

Щойно згадана величина n, яка дорівнює кількості елементів базового типу, не може перевищувати 256, оскільки потужність будь-якої множини в мові Pascal не може бути більшою за це число. Саме тому неприпустимо використовувати такі базові типи, як Integer та Longint.

8.2.2. Оголошення змінних множинного типу

Оголошення змінної типу масиву або типу запису може бути відокремленим від оголошення відповідного типу або поєднаним із ним. Таку саму ситуацію маємо і зі змінною множинного типу даних: існує два різних синтаксиси її оголошення. А саме:

var < ім'я змінної>: set of < базовий тип>;
та
var < ім'я змінної>: < ім'я множинного типу>;

При оголошенні множинної змінної першим способом неявно оголошується неіменований множинний тип даних, а другий спосіб потребує попереднього оголошення множинного типу в розділі type.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.