Типи даних.
В універсальних мовах програмування, до яких відноситься 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