Типи даних
Поняття типу даних в Турбо Паскаль
Для обробки ЕОМ дані представляються у вигляді величин та їх сукупностей. З поняттям величини пов'язані така важлива характеристика, як її тип.
Тип визначає:
- можливі значення змінних, констант, функцій, виразів, що належать до даного типу;
- внутрішню форму представлення даних в ЕОМ;
- операції та функції, що можуть виконуватися відносно до величин, котрі належать до даного типу.
У мові Паскаль тип величини визначають заздалегідь. Всі змінні, що використовуються в програмі, повинні бути оголошені в розділі опису разом із зазначенням їх типу. Обов'язковий опис типу призводить до надмірності в тексті програми, але така надмірність є важливим допоміжним засобом розробки програм і розглядається як необхідна властивість сучасних алгоритмічних мов високого рівня.
Ієрархія типів у мові Паскаль наступна:
- Прості
- Порядкові
- Цілі
- Логічні
- Символьні
- Перераховувані
- Інтервальні
- Дійсні
- Порядкові
- Структуровані
- Масиви
- Рядки
- Множини
- Записи
- Файли
- Покажчики
Прості типи даних
У таблиці наведені прості типи даних Турбо Паскаль, обсяг пам'яті, який необхідний для зберігання однієї змінної зазначеного типу, множина допустимих значень і допустимі операції.
Ідентифікатор | Довжина (байт) | Діапазон значень | Операції |
Цілі типи | |||
integer | 2 | -32768..32767 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
byte | 1 | 0..255 | |
word | 2 | 0..65535 | |
shortint | 1 | -128..127 | |
longint | 4 | -2147483648..2147483647 | |
Дійсні типи | |||
real | 6 | 2,9x10-39 - 1,7x1038 | +, -, /, *, >=, <=, =, <>, <, > |
single | 4 | 1,5x10-45 - 3,4x1038 | |
double | 8 | 5x10-324 - 1,7x10308 | |
double | 8 | 5x10-324 - 1,7x10308 | |
Логічний тип | |||
boolean | 1 | true, false | Not, And, Or, Xor, >=, <=, =, <>, <, > |
Символьний тип | |||
char | 1 | Всі символи коду ASCII | +, >=, <=, =, <>, <, > |
Перелічуваний та інтервальний типи відносяться до таких, що визначаються користувачем і будуть розглянуті нами пізніше.
Порядкові типи, які виділяються з групи простих типів, характеризуються наступними властивостями:
- всі можливі значення порядкового типу являють собою обмежену впорядковану множину;
- до будь-якого порядкового типу може бути застосована стандартна функція Ord, яка в якості результату повертає порядковий номер конкретного значення в даному типі;
- до будь-якого порядкового типу можуть бути застосовані стандартні функції Pred і Succ, які повертають попереднє і наступне значення відповідно;
- до будь-якого порядковому типу можуть бути застосовані стандартні функції Low і High, які повертають найменше і найбільше значення величин даного типу.
У мові Паскаль введено поняття еквівалентності і сумісності типів. Два типи Т1 і Т2 є еквівалентними (ідентичними), якщо виконується одна з двох умов:
- Т1 і Т2 є одне і те ж ім'я типу;
- тип Т2 описаний з використанням типу Т1 за допомогою рівності або послідовності рівності. Наприклад:
type T1 = Integer; T2 = T1; T3 = T2;
Менш строгі обмеження накладаються на сумісність типів. Так, типи є сумісними, якщо:
- вони еквівалентні;
- є обидві або цілими, або дійсними;
- один тип - інтервальний, інший - його базовий;
- обидва інтервальні із загальним базовим;
- один тип - рядковий, інший - символьний.
У Турбо Паскаль обмеження на сумісність типів можна обійти з допомогою приведення типів. Приведення типів дозволяє розглядати ту саму величину в пам'яті ЕОМ як належить різним типам. Для цього використовується конструкція
Ім‘я_Типу (змінна чи значення)
Наприклад, Integer ('Z') являє собою значення коду символу 'Z' в двобайтному поданні цілого числа, а Byte (534) дасть значення 22, оскільки ціле число 534 має тип Word і займає два байти, а тип Byte займає один байт, і в процесі приведення старший байт буде відкинутий.