Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsii_OP / T13.doc
Скачиваний:
91
Добавлен:
17.03.2016
Размер:
364.54 Кб
Скачать

ПЛАН

КОМБІНОВАНІ ТИПИ ДАНИХ 1

Поняття запису (структури) 1

Записи як структури даних 1

Опис комбінованих типів 3

Особливості обробки комбінованих даних 5

Доступ до полів структур 5

Структури-параметри 8

Об’єднання 10

Комбіновані типи даних Поняття запису (структури) Записи як структури даних

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

Значення комбінованого типу називають записами (в деяких мовах програмування - структурами). Записи є надзвичайно зручним засобом для представлення програмних моделей реальних об'єктів наочної області, бо, як правило, кожен такий об'єкт має досить складну, неоднорідну будову - набір властивостей, що характеризуються даними різних типів.

Записи найчастіше використовуються при створенні різного роду інформаційних систем, які містять різнорідні відомості. Наприклад, у інформаційній системі про успішність студентів запис може містити в собі ПІБ студента, курс, групу, оцінки по окремих предметах в кожну екзаменаційну сесію, наявність і кількість перездач по кожному предмету, а якщо необхідно, то і дати іспитів. Частина даної інформації представляється цілими числами, для деяких відомостей краще підходить представлення їх у вигляді літерних рядків, а деякі дані можуть мати логічний тип. Як видно, в такому структурному типі представлені компоненти з абсолютно різними типами значень.

Запис - це структура даних, що складається з фіксованої кількості взаємопов'язаних між собою компонентів одного або декількох типів. Компоненти запису називають полями. Кожне поле характеризується своїм ім'ям і типом значень.

Класичним прикладом запису є об’єкт, який відображає облікову картку студента, що містить поля: прізвище, ім’я, по-батькові студента (FIO), назву групи, у якій він навчається (group), рік народження студента (year), його домашню адресу (address). Наприклад,

FIO

group

year

address

Іванов А.Д

ІП-41

1997

вул.Янгеля, 3, кв.11

Петров В.Л.

ІП-42

1996

просп.Перемоги, 5, кв.34

Схематично дана структура представлена на рис. 1.

Рис. 1. Структура облікової картки студента

Компонентою запису може бути не тільки елемент простого типу даних, а й будь-яка інтегрована структура даних – масив, інший запис тощо. Тому значення комбінованого типу може мати яскраво виражену ієрархічну структуру. Наприклад, можна доповнити дані про студента переліком його оцінок за останню сесію. Тоді відповідна структура даних може мати вигляд, представлений на рис. 2.

Рис. 2. Структура розширеного варіанту облікової картки студента

Областю дії імені кожного поля є внутрішня частина запису, в якій воно визначається. Всі імена полів одного запису мають бути різними, якщо вони визначені усередині області дії одного і того ж імені на одному і тому ж рівні. Якщо ж одне ім'я визначене усередині області дії іншого імені або ці імена визначені в областях дії різних полів одного запису, то такі імена можуть бути однаковими. Очевидно, що різні записи можуть містити поля з однаковими іменами. У деяких мовах програмування (Cobol, Pl/1) при описі вкладених записів вказується рівень вкладеності, в інших (Pascal, C/С++) - рівень вкладеності визначається автоматично. На основі записів також можливе складання регулярної структури - масиву записів.

Записи використовують не тільки для поєднання різнорідних даних, а і в тих випадках, коли бажано запобігти спробам однакової обробки полів одного типу. Нехай потрібно задати деякі дії з комплексними числами а+bі, де а і b - дійсні числа, а і2 = -1. Оскільки в мовах програмування немає відповідного стандартного типу даних, то його необхідно ввести у вживання тим або іншим способом, використовуючи можливості мови. Для цього якраз зручно використати комбінований тип, що містить два поля: в одному з яких задаватиметься дійсна частина комплексного числа (значення а), а в іншому - уявна його частина (значення b). Кожне поле при цьому матиме тип real.

Також однотипні поля в межах запису використовуються для визначення об'єкта "екранні координати" в стан­дартних бібліотеках комп'ютерної графіки.

Комбінований тип (тип запису, тип структури) – це тип даних, множина допустимих значень якого складається з записів (структур), які мають один і той же набір компонент для усіх значень типу.

У математиці подібний складений тип називається декартовим добутком. Це пов'язано з тим, що множина значень такого типу складається з усіх можливих комбінацій окремих значень його компонент. Отже, число таких наборів з n чисел дорівнює добутку кількостей елементів усіх складових множин. Таким чином кардинальне число комбінованого типу визначається як добуток кардинальних чисел усіх типів компонент, тобто

card(T) = card(T1)*card(T2)*... *сard(Tn),

де Ti - тип i-oї компоненти.

Соседние файлы в папке lektsii_OP