Типи даних.


В універсальних мовах програмування, до яких відноситься 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, або у форматі з плаваючою крапкою. Тоді вони представляються мантисою (n) і порядком (m). Мантиса відокрем­люється від порядку буквою Е.

Для переходу від одного формату до іншого використовується формула: 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 байтів
Дійсне подвійної точності Double 5.0*10-324 …1.7*10308 15..16 8 байт
Дійсне підвищеної точності Extended 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