Типи даних, які визначає користувач. Прийоми створення нових типів: перелічення значень, обмеження діапазону. Перелічуваний та обмежений типи

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

Типи даних, які визначає користувач, зазвичай|звично| задаються в розділі визначення типів програми або модуля (unit|), проте|однак| це можна робити|чинити| і усередині|всередині| процедур або функцій. Оголошення типів діють в межах того блоку, в якому вони розміщені. Поза|зовні| цим блоком посилатися на такі типи|типів| не можна. Усередині|всередині| ж вони замінюють всі зовнішні типи|типів| з|із| тим же ім'ям. Оголошені типи|типів| даних можна застосовувати в будь-якому місці|місце-милі| області їх видимості; заборонено тільки|лише| посилання|заслання| визначуваного типу|типа| на самого себе (тут, проте|однак|, є одне виключення|виняток|, що стосується покажчиків).

Оголошення типів в Pascal| є|з'являються,являються| для компілятора чимось на зразок|ніби| схем, які він повинен запам'ятати на випадок, якщо раптом зустріне в програмі посилання|заслання| на той або інший тип|типа|. Само по собі оголошення типу|типа| не вносить до програми ніяких|жодних| змін.

Що ж до оголошень var|, то вони задають компілятору деякі дії, пов'язані з раніше оголошеними типами. Тип змінної обмежує як її значення, так і операції, які можна виконувати з|із| цими значеннями.

Визначення типів і змінних можуть розміщуватися в декількох місцях|місце-милях| компонентів програми. Виглядають же вони таким чином.

type|

typel| = type| definitioni|; //Нові типи даних визначаються в розділі "type|". Кожному новому

// типу|типові| привласнюється ім'я, потім він визначається через вже

//існуючі типи.

type2| = type|__definition2; // В одному розділі "type|" можна оголосити декілька типів.

//Найпростіше визначення типу|типа| складається з імені типу,|типа|

type3| = typel|; // визначеного раніше.

// Нові змінні оголошуються в

var| // розділі "var|". Кожній новій

var1|: type| definitions|; // змінній спочатку привласнюється ім'я, а потім - тип (на основі

// раніше визначених типів).

var2|, var3|: type| definition4|; // В одному розділі "var|" можна оголосити декілька змінних.

// Декільком змінним можна привласнювати один і той же тип|типа|.

var4| : typel|; // Програму легко читати, якщо змінним привласнені

//існуючі типи.

Синтаксис Object| Pascal| дозволяє одночасно конструювати|сконструйовувати| виключно|винятково| складні типи|типів| і визначення змінних. Проте|однак| визначення типів в розділах type| тих або інших блоків дає можливість|спроможність| використовувати ці типи|типів| в різних частинах|частках| програми. Нові типи визначаються з|із| типів наступних|слідуючих| категорій.

Прості типи для зберігання інформації у формі|у формі| чисел і інших "впорядкованих" значень.

Строкові типи для зберігання послідовностей символів.

Структурні типи для одночасного зберігання інформації різних типів.

Вказівні типи для непрямого звернення до змінних заданих типів.

Процедурні типи для звернення до процедур і функцій, що розглядаються|розглядують| як змінні.

Варіантні типи для зберігання в одній змінній даних різних типів.

Перелічуваний - це тип даних, діапазоном значень якого є|з'являється,являється| просто набір ідентифікаторів. Це може застосовуватися в тих випадках, коли потрібно описати тип|типа| даних, значення якого наочніше|наглядний| представити|уявляти| не числами, а словами. Перелічуваний тип записується|занотовує| узятою в круглі дужки послідовністю ідентифікаторів - значень цього типу|типа|, що перераховуються через кому. При цьому, перші елементи типу|типа| вважаються|лічать| молодшими в порівнянні з тими, що йдуть услід. Наприклад, тип, що описує назви футбольних команд, можна сформувати так:

type| FootballTeam| = (Spartak|, Dinamo|, CSKA|, Torpedo|, Lokomotiv|);

var| MyTeam|: FootballTeam|;

begin|

MyTeam:=Spartak|;

end|;

Взагалі, під перелічуваними типами розуміють всі типи|типів|, для яких можна визначити послідовність значень і їх старшинство. До них відносяться:

Ø всі цілочислові типи, для яких завжди можна вказати число, наступне|слідуюче| за числом N;

Ø символьні типи (Char|): за символом 'a'| завжди слідує|прямує| 'b'|, за '0'| слідує|прямує| '1'|, і так далі;

Ø логічні типи - тип Boolean| також є типом, що перераховує: type| Boolean| = (false|, true|);

Змінні діапазонного (обмеженого) типу|типа| містять|утримують| інформацію, відповідну деякому заданому діапазону значень. Синтаксис визначення діапазонного типу|типа| має наступний|слідуючий| вигляд|вид|:

Type| range| = low| value|...high value|;

Type| age| = 1..100;

Змінній діапазонного типу|типа| можна привласнювати тільки|лише| значення, що входять в заданий діапазон.