Учня 11-А класу p>
ТИПИ ДАНИХ p>
Будь-які дані, тобто константи, змінні, значення функцій абовирази, в Турбо Паскалі характеризуються своїми типами. Тип визначаєбезліч допустимих значень, які може той чи інший об'єкт, а такожбезліч припустимих операцій, які застосовуються до нього. Крім того, типвизначає формат внутрішнього подання даних в пам'яті ПК. p>
Турбо Паскаль характеризується розгалуженою структурою типів даних. p>
У Турбо Паскалі передбачений механізм створення нових типів даних,завдяки чому загальна кількість типів, що використовуються в програмі, може бутискільки завгодно великим. p>
ПРОСТІ ТИПИ p>
До простих типів відносяться порядкові і речові типи. p>
Порядкові типи відрізняються тим, що кожен з них має кінцеве числоможливих значень. Ці значення можна певним чином порядок
(звідси - назва типів) і, отже, з кожним з них можназіставити деякий ціле число - порядковий номер значення. p>
Речові типи теж мають кінцеве число значень, якевизначається форматом внутрішнього подання дійсного числа. Однаккількість можливих значень речових типів настільки велике, щозіставити з кожним з них ціле число (його номер) не представляєтьсяможливим. p>
Порядковий ТИПИ p>
До порядковим типами відносяться цілі, логічний, символьний,перераховувати і тип-діапазон. p>
Цілі типи. Діапазон можливих значень цілих типів залежить від їхвнутрішнього уявлення, яке може займати один, два або чотирибайти
| ЦІЛІ ТИПИ |
| Назва | Довжина, | Діапазон значень |
| | Байт | |
| Byte | 1 | 0 ... 255 |
| ShortInt | 1 | -128 ... +127 |
| Word | 2 | 0 ... 65535 |
| Integer | 2 | -32768 ... 32767 |
| LongInt | 4 | -2 147 483 648 ... +2 147 483 647 | p>
При використанні процедур і функцій з цілочисельними параметрамислід керуватися «вкладень» типів, тобто скрізь, де можевикористовуватися Word, допускається використання Byte (але не навпаки), в
LongInt "входить" Integer, який, у свою чергу, включає в себе
ShortInt. P>
При дейстйствіі з цілими чмсламі тип результату буде відповідатитипу операндів, ф якщо операнди відносяться до різних цілим типами, - типутого операнда, який має максимальну потужність (максимальний діапазонзначень). Можливе переповнення ніяк не контролюється, що можепризвести до недорозумение. p>
Логічний тип
| Логічні ТИПИ |
| Назва | Довжина, Байт | OS | Значення |
| BOOLEAN | 1 | Linux, DOS | False, True |
| BYTEBOOL | 1 | Сумісний з С | False, True |
| WORDBOOL | 2 | Win | False, True |
| LONGBOOL | 4 | Win | False, True | p>
. Значеннями логічного типу може бути один із заздалегідьоголошених констант FALSE (неправда) або TRUE (істина). p>
Оскільки логічний тип відноситься до порядковим типами, його можнавикористовувати в операторі рахункового типу. p>
символьний тип. CHAR - займає 1 байт. Значним символьного типує безліч всіх символів ПК. Кожному символу присвоюється цілечисло в діапозоні 0 ... 255. Це число служить кодом внутрішнього поданнясимволу. p>
Для кодування іспоьзуется код ASCII (American Standart Code for
Information Interchange - американський стандартний код для обмінуінформацією). Це 7-бітний код, тобто з його допомогою можн озакодіровать лише
128 символів у діапозоні від 0 до 127. У той же час у 8-бітному байті,відведеному для зберігання символу в Турбо Паскалі, можна закодувати в дварази більше символів у дапозоне від 0 до 255. Перша половина символів ПК зкодами 0 ... 127 відповідає стандарту ASCII. Друга половина символів зкодами 128ююю255 не обмежена жорсткими рамками стандарту і може змінюватисьна ПК різних типів. p>
Символи з кодами 0 ... 31 відносяться до слжебним кодами. Якщо ці кодивикористовувати в символьному тексті програми, вони вважаються пробілами. p>
перераховуються тип. Перераховуються тип задається перерахуванням тихзначень, які він може отримувати. Кожне значення іменується деякимідентифікатором і рапологается у списку, обрамленому круглими дужками,напрімерЖ p>
Type p>
Colors = (red, white, blue); p>
Застосування перелічуваних типів робить програми наочніше. p>
Відповідність між значеннями перераховується типу і порядковиминомерами цих значень встановлюється порядком перерахування: першазначення списку отримує порядковий номер 0, друга - 1 і т.д. максимальнапотужність що перераховується типу складає 65536 значень, тому фактичноперераховуються тип задає деякий підмножина цілого типу WORD і можерозглядатися як компактне оголошення відразу групи цілочисельнихконстант зі значеннями 0,1 і т.д. p>
Використання перелічуваних типів підвищує надійність програми,завдяки можливості контролю тих значень, які одержуютьвідповідні змінні. p>
Тип-діапазон. Тип-діапазон є підмножина свого базового типу, вякості якого може виступати будь-який порядковий тип, окрім типу -діапазону. p>
Тип-діапазон задається межами своїх значень всередині базового типу: p>
.. p>
Тут - мінімальне значення типу-діапазону. p>
- максимальне його значення. p>
Type p>
Digit = '0 '.. '9'; p>
Dig2 = 48 .. 57; p>
При визначенні типу-діапазону потрібно керуватися наступнимиправилами: p>
1. два символи «..» розглядаються як один символ, тому між ними неприпустимі пробіли. p>
2. ліва межа діапазону не повинна перевищувати його праву кордон. p>
Тип-діапазон успадковує всі властивості базового ітпа, але з обмеженнями, пов'язаними з його меншою потужністю. p>
Речовий ТИПИ p> < p> На відміну від порядкових типів, значення яких завжди зіставляютьсяз низкою цілих чисел і, отже, представляється в ПК абсолютно точно,значення речових типів визначають довільне число лише з деякоюкінцевою точністю, яка залежить від внутрішнього формату дійсного числа. p>
| Довжина, | Назва | Кількість | Діапазон десяткового |
| байт | | значущих цифр | порядку |
| 6 | Real | 11 ... 12 | -39 ... +38 |
| 4 | Single | 7 ... 8 | -45 ... +38 |
| 8 | Double | 15 ... 16 | -324 ... +308 |
| 10 | Extended | 19 ... 20 | -4951 ... 4932 |
| 8 | comp | 19 ... 20 | -2 * 1063 +1 ... +2 * 1063-1 | p>
Структуровані ТИПИ p>
Будь-який з структурованих типів характеризується множинністюскладають цей тип елементів, тобто мінлива або сонстантаструктурованого типу завжди має декілька компонентів. Коженкомпонент, у свою чергу, може належати структурованого типу, щодозволяє говорити про можливу вложеності типів. У Турбо Паскалідопускається довільна глибина вложеності типів, однак сумарна довжинабудь-якого з них у внутрішньому представленні не повинна перевищувати 65520 байт. p>
Масиву p>
Массіиви в Турбо Паскалі багато в чому схожі з аналогічними типами данихв інших мовах програмування. Відмінна риса масивівполягає в тому, що всі їх компоненти суть дані одного типу (можливоструктурованого). Ці компоненти можна легко впорядкувати і забезпечитидоступ до будь-якого з них простим зазначенням порядкового номера. p>
Опис масиву задається наступним чином: p>
= array [] of p>
Тут - правильний індіфікатор; p >
Array, of - зарезірвірование слова (масив, з); p>
- список з одного або декількох індексних типів,розділених комами; квадратні дужки, що обрамляють список, - вимогасинтаксису; p>
- будь-який тип Турбо Паскаля. p>
Як індексних типів у Турбо Паскалі можна використовувати будь-якіпорядкові типи, крім LongInt і типів-діапазонів з базовим типом LongInt. p>
Глибина вкладеності структурованих типів взагалі, а отже, імасивів - довільна, тому кількість елементів у списку індексівтипів (розмірність масиву) не обмежена, однак сумарна довжинавнутрішнього подання будь-якого масиву не може бути більше 65520 байт. p>
ЗАПИСИ p>
Запис - це структура даних, що складається з фіксованого числакомпонентів, називаемихполямі запису. На відміну від масиву, компоненти
(поля) запису можуть бути різного типу. Щоб можна було посилатися на тойабо інший компонент записи, поля іменуються. p>
Структура оголошення типу запису така: p>
= RECORD END p>
Тут - правильний індіфікатор; p>
RECORD, END - зарезервірование слова (запис, кінець); p>
- список полів, представляє собою послідовністьрозділів записи, між якими ставиться крапка з комою. p>
МНОЖЕСТВ p>
Безліч - це набір однотипних логіческх пов'язаних один з однимоб'єктів. Характер зв'язків між об'єктами лише мається на увазі програмістіві ніяк не контролюється Турбо Паскалем.колічество елементів, що входять добезліч, може змінюватись в межах від 0до 256 (безліч, що не міститьелементів, називається порожнім). саме мінливістю кількості своїхелементів множини відрізняються від масивів і записів. p>
Два безлічі вважаються еквівалентними тоді і тільки тоді, коли всіїх елементи однакові, причому порядок проходження елементів множинибайдужий. Якщо всі елементи одного безлічі входять також і в інше,говорять про включення першого безлічі у другому. p>
Опис типу безлічі має вигляд: p>
= SET OF p>
Тут - правильний індіфікатор; p>
SET, OF - зарезірвірованние слова (безліч, з); p>
- базовий тип елементів множини, в якості якого можевикористовуватися будь-який порядковий тип, крім WORD, INTEGER і LONGINT. p>
Для завдання безлічі використовується так званий конструкторбезлічі: список специфікацій елементів множини, відокремлюваних один віддруга комами; список обрамляється квадратними дужками. Специфікаціямиелементів можуть бути константи, або вирази базового типу, а також - тип -діапазон того ж базового типу. p>
СТРОКИ p>
Тип STRING (рядок) у Турбо Паскалі широко використовується для обробкитекстів. Він багато в чому схожий на одновимірний масив символів ARRAY [0 .. N] OF
CHAR, проте, на відміну від останнього, кількість символів у рядку --змінної може змінюватись від 0 до N, де N - кількість максімалльноесимволів в рядку. Значення N визначається оголошенням типу STRING [N] N іможе бути будь-якою константою порядкового типу, але ен більше 255. Турбо
Паскаль дозволяє не вказувати N, у тому випадку довжина рядка приймаєтьсямаксимально можливою, а саме N = 255. p>
Рядок у Турбо Паскалі трактується як ланцюжок символів. До будь-якогосимволу в рядку можна звернутися точно так само, як до елементу одновимірногомасиву ARRAY [0 .. N] OF CHAR. p>
ФАЙЛИ p>
Під файлом розуміється або іменована область зовнішньої пам'яті ПК, абологічний пристрій - потенційне джерело або приймач інформації. p>
Будь-який файл має три характерні особливості. По-перше, у нього єім'я, що дає можливість програмі працювати одночасно з декількомафайлами. По-друге, він містить компоненти одного типу. Типом компонентівможе бути будь-який тип Турбо Паскаля, крім файлів. Іншими словами, недьзястворити «файл файлів». По-третє, довжина знову створюваного файла ніяк необмовляється при його оголошенні і обмежується лише розміром пристроївзовнішньої пам'яті. p>
Файловий тип або змінну файлового типу можна поставити одним з трьохспособів: p>
= FILE OF; p>
= TEXT; p>
= FILE; p>
Тут - ім'я файлового типу (правильний індіфікатор); p>
FILE, OF - зарезервовані слова (файл, з); p>
TEXT - ім'я стандартного типу текстових файлів; p>
- будь-який тип Турбо Паскаля, крім файлів. p>
Залежно від способу оголошення можна виділити три види файлів: p>
. типізовані файли (задаються пропозицією FILE OF ...); p>
. текстові файли (визначаються типом TEXT); p>
. нетипізовані файли (визначаються типом FILE). p>
ПРОЦЕДУРНІ ТИПИ p>
Процедурні типи - це нововедення фірми Borland (у стандартному
Паскалі таких типів немає). Основне призначення цих типів-дати програмистгнучкі засоби передачі функцій і процедур в якості фактичнихпараметрів звернення до інших процедур та функцій. p>
Для оголошення процедурного типу використовується заголовок процедури
(функції), в якому опускається її ім'я, напріме: type p>
Proc = procedure; p>
Proc1 = procedure (var X, Y: Integer); p>
StrProc = procedure (S: String); p>
MathFunc = function (X: Real): Real: p>
DeviceFunc = function (var F: Text): Integer; p>
MaxFunc = function (A, B: Real; F: MathFunc): Real; p>
Як видно з наведених прикладів існує два види процедурнихтипів: тип-роцедура і тип-функція. p>
У програмі можуть бути оголошені змінні процедурних типів,наприклад, так: p>
Var p>
P1: Proc1; p>
F1, f2: MathFunc; p>
Ap: array [1 .. N] of Proc1 p>
змінним процедурних типів допускається привласнювати якзначень імена відповідних підпрограм. Після такого присвоювання ім'язмінної стає синонімом імені підпрограми. p>
ТИП Об'єкт p>
Тип об'єкт - це структура, що складається з фіксованого числакомпонент. Кожна компонента - це чи поле, яке містить даніпевного типу, або метод, який здійснює операції над об'єктом.
Аналогічно оголошення змінних, оголошення поля, вказує тип данихполя та ідентифікатор імені цього поля, і аналогічно оголошенню процедуриабо функції оголошення методу вказує заголовок процедури, функції,констрактора або дестрактора. p>
Тип об'єкт може успадковувати компоненти від іншого типу об'єкта. p>
Сфера дії типу об'єкта складається з нього самого і всіх йогопороджених типів. p>
На відміну від інших типів, тип об'єкт може бути оголошений в частиніоголошення типів у самої зовнішньої частини програми або модуля. p>
Так, тип об'єкта не може бути оголошений в частині оголошення зміннихабо всередині процедури, функції або методу. p>
ТИП ВКАЗІВНИК p>
Тип покажчик (контрольний тип) визначає безліч значень, яківказують на динамічні змінні певного типу, званогобазовим типом. Змінна з типом покажчик містить адресу динамічноїзмінної в пам'яті. p>
Якщо базовий тип є ще не описаним ідентифікатором, то вінповинен бути описаний в тій же самій частині опису типів, що й типпокажчик. p>
Змінній-вказівником може мати значення за допомогою процедури New,@ операції або функції Ptr. Процедура New відводить нову область пам'яті вдинамічно розподіляє області для динамічних змінних і зберігаєадресу цієї області у змінній покажчика. Операція @ орієнтуєзмінну вказівник на область пам'яті, що містить існуючу змінну,включаючи і ті змінні, які мають ідентифікатори. Функція Ptrорієнтує змінну покажчика на певну адресу в пам'яті.
Зарезервоване слово nil позначає константу зі значенням покажчика,яка ні на що не вказує. p>
Вбудований вказівник типу позначає нетіпізованний покажчик, тобтопокажчик, який не вказує ні на який певний тип. Зміннітипу Pointer можуть бути разименовани; вказівку символу ^ після такоїзмінної викликає появу помилки. Як і значення, що позначається словомnil, значення типу Pointer сумісні з усіма іншими типами покажчиків. p>
У розділі "Покажчики та динамічні змінні" в Главе4 ви можетезнайти синтаксис посилання на динамічні змінні, які вказуються здопомогою покажчика-змінної. p>
типізований КОНСТАНТА p>
У Турбо Паскалі допускається використання типізованих констант. Вонизадаються в розділі оголошення констант в такий спосіб: p>
: = p>
Тут - індіфікатор константи; p>
- тип константи; p>
- значення константи . p>
типізований констант можна присвоювати інші значення в ходівиконання програми, тому фактично вони являють собою змінніз початковими значеннями. Типізований константа набуває зазначена воголошення її значення, тобто ініціюється, лише один раз: до моменту початкуроботи програми. При повторному вході в блок (роцедуру або функцію), вякому вона оголошена, ініціація типізований константи не виробляється івона зберігає те значення, яке мала до моменту виходу з блоку. p>
типізовані константи можуть бути будь-якого типу, крім файлів. Не можнатакож оголосити типізований константу - запис, якщо хоча б одна з їїполів є полем файлового типу. p>
Оскільки типізований константа фактично не відрізняється відзмінної, її не можна використовувати як значення при оголошенніінших констант або меж типу-діапазону. p>
КОНСТАНТА простих типів І ТИПУ STRING p>
Оголошення таких констант звичайно не викликає труднощів, так як вяк їх значення іспоьзуется нетипізовані константи або їхіндіфікатори. p>
КОНСТАНТА-масиви p>
В якості початкового значення тіпізтрованной константи-масивувикористовуються список констант, відокремлених один від одного комами; списокполягає в круглі Собко. p>
При оголошенні багатовимірних констант-масивів безліч констант,відповідних кожному вимірюванню, полягає в додаткові круглідужки і відокремлюється від сусіднього безлічі комами. У результатіутворюються вкладені структури множин, причому глибина вкладення повиннасответствовать кількості вимірів (розмірності) масиву. Найкращі внутрішнібезлічі констант пов'язують?? я з вимірюванням самого правого індексу масиву. p>
КОНСТАНТА-ЗАПИСИ p>
Визначення константи-запису має такий вигляд: p>
: () p>
Тут - індіфікатор константи; p>
- тип запису; p>
- список значень полів. p>
Список значень полів являє собою список з послідовностейвиду: ім'я поля, двокрапка і константа. Елементи списку відокремлюються один віддруга двокрапками. p>
КОНСТАНТА-множина p>
Значення типізований константи-безлічі задається у виглядіправильного конструктора множин. p>
КОНСТАНТА-ПОКАЖЧИКИ p>
Єдиним значенням типізований константи-покажчика може бутитільки NIL.
----------------------- p>
Порядкові p>
Об'єкти p>
Процедурні p >
Масиви p>
Структуровані p>
Файли p>
Записи p>
Безліч p>
Строки p> < p> Покажчики p>
Цілі p>
Тип-діапазон p>
Логічний p>
символьний p>
перераховуються p> < p> Прості типи p>
Речові p>
ТИПИ p>
p>