В універсальних мовах програмування, до яких відноситься Pascal, є певний набір стандартних типів даних, структурованих даних, а також передбачені засоби, які дозволяють програмісту визначити нові типи даних.
Множину типів мови Turbo Pascal можна розділити на дві групи:
• стандартні (визначені) типи;
• типи, визначені користувачем (користувальницькі типи).
Імена стандартних типів є визначеними ідентифікаторами (не плутати із зарезервованими словами!) і діють у будь-якому місці програми. У дійсності, вони описані в стандартному модулі System, що за замовчуванням підключається в список використовуваних модулів кожної програми й кожного користувальницького модуля, незалежно від того, зазначений він у розділі uses, чи ні. Також, як і інші визначені ідентифікатори, імена стандартних типів можуть бути перевизначені впрограмі. Однак і після цього залишається можливість звертання до їхнього початкового змісту за допомогою ідентифікатора із вказівкою імені модуля System. Наприклад: System.Integer, System.Real.
Користувальницькі типи –це додаткові абстрактні (прості й структуровані) типи, характеристики яких програміст-користувач може визначати самостійно. Використання таких типів дозволяє програмістові ясніше й точніше описувати поставлене завдання, а компіляторові надає більше інформації для перевірки синтаксичних помилок і генерування більш ефективного машинного коду.
Достандартних типів Turbo Pascal відносять:
Ø групу цілих типів (Shortint, Integer, Longint, Byte, Word);
Ø групу дійсних типів (Single, Real, Double, Extended, Comp);
Ø групу логічних типів (Boolean, ByteBool, WordBool, LongBool);
Ø символьний тип (Char);
Ø рядкові типи (String, Pchar);
Ø вказівний тип (Pointer);
Ø текстовий тип (Text).
Докористувальницьких типів Turbo Pascal відносять:
Ø Перераховуваний;
Ø Діапазонний;
Ø Вказівний (крім Pointer);
Ø Структуровані типи;
Ø Процедурний.
До структурованих типів відносяться:
Ø Тип-масив (array);
Ø Тип-множина (set;)
Ø Тип-запис (record);
Ø Файловий тип (file);
Ø Об’єктний тип (object);
Символьний тип, а також цілі й логічні типи, перераховуваний та діапазонний типи відносять до, так званих, порядковихтипів.
Порядкові типи характеризуються наступними чотирма властивостями.
Ø Множина допустимих значень будь-якого порядкового типу є впорядкованою послідовністю, кожний елемент якої має свій порядковий номер. Порядковий номер є цілим числом. Перше значення будь-якого порядкового типу має порядковий номер 0, наступне значення має порядковий номер 1 і так далі. Виключення становлять порядкові типи Integer, Shortint і Longint. Порядковим номером значень цих типів є саме значення.
Ø До будь-якого значення порядкового типу можна застосувати стандартну функцію Ord, що повертає порядковий номер цього значення.
Ø До будь-якого значення порядкового типу можна застосувати стандартну функцію Pred, що повертає значення, яке передує цьому значенню. Якщо ця функція застосовується до першого допустимого значення будь-якого порядкового типу, крім логічних, то повертається порядковий номер останнього значення.
Ø До будь-якого значення порядкового типу можна застосувати стандартну функцію Succ, що повертає значення, наступне за зазначеним. Якщо ця функція застосовується до останнього допустимого значення будь-якого порядкового типу, крім логічних, то повертається порядковий номер першого значення.
ВСІ дані в оперативній пам’яті ПК представлені у двійковій системі числення. (Ви повинні вміти переводити числа з десяткової системи числення і навпаки).
Цілі типи даних
В Turbo Pascal включені п’ять типів для опису змінних і констант, які є цілими числами
Назва типу
| Ідентифікатор
| Діапазон
| Розмір пам’яті
|
Коротке ціле зі знаком
| ShortInt
| -128...…127
| 1 байт
|
Ціле зі знаком
| Integer
| -32768…32767
| 2 байти
|
Довге ціле зі знаком
| LongInt
| -2147483648…2147483647
| 4 байти
|
Коротке ціле без знака
| Byte
| 0...…255
| 1 байт
|
Ціле без знака
| Word
| 0...…65535
| 2 байти
|
У мові Pascal як цілі використовуються числа в десятковій і шістнадцятковій системах числення. Перед шістнадцятковими цифрами розміщується символ $, наприклад $A5F.
Дійсні типи даних
Дійсні числа можна записувати у форматі з фіксованою крапкою, наприклад, 5.04, -12.109, або у форматі з плаваючою крапкою. Тоді вони представляються мантисою і порядком. Мантиса відокремлюється від порядку буквою Е. Для запису і переходу використовується формула: nEm=n*10m. У запису порядку два розряди, а мантиси – від 7 до 20 цифр. Наприклад, десяткове число 0,354*10 в мові Pascal має такий запис: .354Е–03, а число 852,4 – .8524Е03.
В групу дійсних типів входять наступні п’ять типів:
Назва типу
| Ідентифікатор
| Діапазон
| Мантиса
| Розмір пам’яті
|
Дійсне одинарної точності
| Single
| 1.5*10-45 … 3...4*1038
| 7..8
| 4 байти
|
Дійсне
| Real
| 2.9*10-39 … 1...7*1038
| 11..12
| 6 байтів
|
Дійсне подвійної точності
| Dowble
| 5.0*10-324 … 1...7*10308
| 15..16
| 8 байт
|
Дійсне підвищеної точності
| Exteded
| 3.4*10-4932 … 1...1*104932
| 19..20
| 10 байт
|
Ціле у форматі дійсного
| Comp
| -9.2*1018 … 9...2*1018
| 19..20
| 8 байт
|
В цій групі необхідно виділити тип Comp, який є своєрідним «гібридом» цілого і дійсного типів. З одного боку, змінні і константи цього типу можуть мати тільки цілі значення (властивість цілих типів). З іншого боку, тип Comp, на відміну від цілих типів, не є порядковим (властивість дійсних типів). Відповідно до цього, тип Comp не володіє описаними вище властивостями порядкових типів і тому його відносять до групи дійсних типів. Змінна типу Comp округляє дробове число до найближчого цілого.
Логічні типи даних
Ідентифікатор
| Значенню False відповідає
| Значенню True відповідає
| Розмір пам’яті
|
Boolean
| Число 0
| Будь-яке число, відмінне від 0
| 1 байт
|
ByteBool
| Число 0
| 1 байт
|
WordBool
| Число 0 в обох байтах
| 2 байти
|
LongBool
| Число 0 у всіх байтах
| 4 байти
|
Оскільки логічний тип (Boolean) є перераховуваним, між цими значеннями мають місце наступні відношення:
Ø False < True
Ø Ord(False) = 0
Ø Ord(True) = 1
Ø Succ(False) = True
Ø Pred(True) = False