ПЛАН
КОМБІНОВАНІ ТИПИ ДАНИХ 1
Поняття запису 1
Фізичне представлення запису 2
Оголошення комбінованих типів 2
Особливості обробки у мові Pascal 4
Особливості обробки у мові C 6
Комбіновані типи даних Поняття запису
Одним із найбільш гнучких і зручних механізмів побудови структур даних самої довільної природи є комбінований тип даних. Його значення, так само як і значення регулярного типу, складається з декількох компонент, але на відміну від масиву, ці компоненти можуть бути різних типів.
Значення комбінованого типу називають записом (в деяких мовах програмування - структурою). Записи є надзвичайно зручним засобом для представлення програмних моделей реальних об'єктів наочної області, бо, як правило, кожен такий об'єкт має досить складну, неоднорідну будову - набір властивостей, що характеризуються даними різних типів.
Записи найчастіше використовуються при створенні різного роду інформаційних систем, які містять різнорідні відомості. Наприклад, у інформаційній системі про успішність студентів запис може містити в собі ПІБ студента, курс, групу, оцінки по окремих предметах в кожну екзаменаційну сесію, наявність і кількість перездач по кожному предмету, а якщо необхідно, то і дати іспитів. Частина даної інформації представляється цілими числами, для деяких відомостей краще підходить представлення їх у вигляді літерних рядків, а деякі дані можуть мати логічний тип. Як видно, в такому структурному типі представлені компоненти з абсолютно різними типами значень.
Запис - це структура даних, що складається з фіксованої кількості різнотипних компонент довільної структури. Компоненти запису називають полями. Кожне поле характеризується своїм ім'ям і типом значень. Наприклад,
-
Іванов А.Д
ІП-11
1994
вул.Янгеля, 3, кв.11
Петров В.Л.
ІП-01
1993
просп.Перемоги, 5, кв.34
Сидоров Т.Р.
ІП-91
1992
вул.Смоленська, 23, кв.141
Компонентою запису може бути будь-яка інтегрована структура даних – масив, інший запис, тощо. Тому значення комбінованого типу може мати яскраво виражену ієрархічну структуру. При цьому областю дії імені кожного поля є внутрішня частина запису, в якому воно визначається. Всі імена полів одного запису мають бути різними, якщо вони знаходяться на одному рівні. Якщо ж одне ім'я визначене усередині області дії іншого імені або ці імена визначені в областях дії різних полів одного запису, то такі імена можуть бути однаковими. Очевидно, що різні записи можуть містити поля з однаковими іменами. У деяких мовах програмування (COBOL, Pl/1) при описі вкладених записів вказується рівень вкладеності, в інших (PASCAL, C) - рівень вкладеності визначається автоматично. На основі записів також можливе складання регулярної структури - масиву записів.
Записи використовують не тільки для поєднання різнорідних даних, а й в тих випадках, коли бажано запобігти спробам однакової обробки полів одного типу. Нехай потрібно задати деякі дії з комплексними числами а + b і, де а і b - дійсні числа, а і2 = -1. Оскільки в мовах програмування немає відповідного стандартного типу даних, то його необхідно ввести у вживання тим або іншим способом, використовуючи можливості мови. Для цього якраз зручно використати комбінований тип, що містить два поля: в одному з яких задаватиметься дійсна частина комплексного числа (значення а), а в іншому - уявна його частина (значення b). Кожне поле при цьому матиме тип real.
Бібліотеки мов високого рівня використовують записи для створення типу даних "екранні координати" в стандартних бібліотеках комп'ютерної графіки.
У математиці подібний складений тип називається декартовим добутком. Це пов'язано з тим, що множина значень такого типу складається з усіх можливих комбінацій окремих значень його компонент. Отже, число таких наборів з n чисел дорівнює добутку кількостей елементів усіх складових множин. Таким чином кардинальне число складеного типу дорівнює добутку кардинальних чисел всіх типів компонент, тобто card (T) = card (T1) * card(T2) *... * Card (Tn), де Ti - тип i-oї компоненти.