
§ 2. Типи даних
1. Стандартні типи даних. Одним з найважливіших понять у програмуванні є змінна. Змінна це поіменована ділянка оперативної пам’яті комп’ютера, де зберігається значення деякої величини. Змінна має такі властивості: назву (ім’я), значення, тип. Кількість змінних та їхні властивості задає користувач. Тип змінної визначає її допустимі значення, а також операції, які можна над нею виконувати. У програмі Trykutnyk з §1 змінні р та s оголошені як змінні числового дійсного типу.
Розглянемо стандартні типи даних: числові цілі (табл. 1), числові дійсні (табл. 2), символьний та логічний. Інші типи вивчатимемо дальше.
Табл. 1. Цілочислові типи
Назва типу |
Діапазон значень |
byte |
0..255 |
shortint |
-128..127 |
word |
0..65535 |
Integer (основний тип) |
-32768..32767 |
longint |
-2147483648..2147483647 |
Розглянемо такі дві змінні: var x:byte; y:integer. Цим змінним можна надати, наприклад, таких значень: х:=65; у:=-5. Зауважимо, що змінна х не може набувати від’ємних значень, оскільки вони не входять до діапазону допустимих значень типу byte.
Табл. 2. Дійсні типи
Назва типу |
Діапазон |
single |
1.510-453.41038 |
кeal (основний тип) |
2.910-391.71038 |
double |
5.010-3241.710308 |
extended |
3.410-49511.1104932 |
Дійсні числа можна записувати у форматі з фіксованою крапкою, наприклад, 5.04, -12.109, або у форматі з плаваючою крапкою, наприклад, -5.2Е+2 (це є -520.0), 16.1Е-3 (це є 0.0161). Символи nЕ+2 означають множення числа п на 10 у степені +2, тобто
nEm=n10m. |
Символьний тип (char) це множина символів кодової таблиці комп’ютера ASCII. Символьна стала це символ, взятий у лапки, наприклад, ’а’,’5’,’ %’.
Логічний тип (boolean) характеризується двома значеннями:
false (хибність) та true (істинність).
Усі стандартні типи (окрім дійсного) є впорядкованими, тобто для кожного даного визначені наступне та попереднє значення.
2. Нестандартні прості типи. Усі наведені вище типи даних є стандартними. Їх не треба описувати у розділі типів. Користувач може визначити свої власні типи даних у розділі type так:
type <ім’я типу 1> = <опис типу 1>; … <ім’я типу n> = <опис типу n>; |
До простих нестандартних типів належать перерахований, діапазонний та рядковий типи.
Перерахований тип утворюють з ідентифікаторів (імен користувача) шляхом їх об’єднання у список, який записують у круглих дужках:
type <ім’я типу> = (<значення 1>,<значення 2>, ..., <значення n>); |
Приклад. Опишемо два перераховані типи (дні тижня та кольори):
type week = (mon, tue, wed, the, fri, sat, sun);
colors = (red, green, yellow, white);
та оголосимо дві змінні day та mycolor цих типів:
var day : week; mycolor : colors;
Цим змінним можна надати, наприклад, такі значення:
day:=fri, mycolor:=green, mycolor:=yellow.
Номер першого елемента списку завжди є 0. Дані перерахованого типу не можна вводити з клавіатури чи виводити. Даними перерахованого типу не можуть бути числові чи символьні значення.
Діапазонний тип це звуження деякого базового упорядкованого типу. Його описують наступним чином:
type <ім'я типу> = <значення 1> .. <значення 2>; |
Приклад. Розглянемо три типи, які описують усі дні тижня, робочі дні та номери місяців, і оголосимо змінні day1,day2, day3 та month цих типів:
type week = (mon,tue,wed,the,fri,sat,sun);
workdays = mon..fri;
months = 1..12;
var day1,day2 : week; day3 : workdays; month : months;
Рядковий тип даних (string). Значенням змінної рядкового типу може бути довільна послідовність, яка складається не більше, ніж з 255 символів. Змінні рядкового типу можна описати у розділі опису констант, типів, або оголосити у розділі змінних. Наприклад,
const s='Bye!'; type t=string[10]; var top:t; w:string.
У квадратних дужках зазначають довжину рядка. Сталі типу рядок використані в програмі Trykutnyk у команді виведення writeln.
3. Типовані сталі. Окрім звичайних, є ще типовані сталі. Вони дають змогу оголошувати змінну й відразу надавати їй значення:
const <ім’я сталої 1> : <тип 1> = <значення 1>; … <ім’я сталої n> : <тип n> = <значення n>; |
На відміну від звичайних, значення типованих сталих у програмі можна змінювати. Приклади типованих сталих:
const mysymbol : char = 'a'; n : integer = 5; р : real = 1.73.