Типи даних
Поняття типу даних в Турбо Паскаль
Для обробки ЕОМ дані представляються у вигляді величин та їх сукупностей. З поняттям величини пов'язані така важлива характеристика, як її тип.
Тип визначає:
- можливі значення змінних, констант, функцій, виразів, що належать до даного типу;
- внутрішню форму представлення даних в ЕОМ;
- операції та функції, що можуть виконуватися відносно до величин, котрі належать до даного типу.
У мові Паскаль тип величини визначають заздалегідь. Всі змінні, що використовуються в програмі, повинні бути оголошені в розділі опису разом із зазначенням їх типу. Обов'язковий опис типу призводить до надмірності в тексті програми, але така надмірність є важливим допоміжним засобом розробки програм і розглядається як необхідна властивість сучасних алгоритмічних мов високого рівня.
Ієрархія типів у мові Паскаль наступна:
- Прості
- Порядкові
- Цілі
- Логічні
- Символьні
- Перераховувані
- Інтервальні
- Дійсні
- Структуровані
- Масиви
- Рядки
- Множини
- Записи
- Файли
- Покажчики
Прості типи даних
У таблиці наведені прості типи даних Турбо Паскаль, обсяг пам'яті, який необхідний для зберігання однієї змінної зазначеного типу, множина допустимих значень і допустимі операції.
Ідентифікатор |
Довжина (байт) |
Діапазон значень |
Операції |
Цілі типи |
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 займає один байт, і в процесі приведення старший байт буде відкинутий.
|