Програма оперує різними елементами даних. Кожен елемент може бути визначеного типу. Цей тип задає як множину значень, що може приймати елемент, так і операції, які можуть бути з ним виконані.
Зараз ми розглянемо лише чотири стандартних типи даних:
1) INTEGER (цілий). Діапазон значень даних цього типу, що можуть прийматися, зазвичай від -32768 до +32767. Граничні значення діапазону записано в стандартних константах, які мають імена MAXINT та MININT, тобто MININT -32768 та MAXINT=32767. Спроба отримати значення, що виходить за межі діапазону, призводить до помилки транслятора.
Об'єкти даних — учасники операцій — називаються операндами. Над операндами цілого типу можливі такі операції: + (додавання), - (віднімання), * (множення), DIV (цілочисельне ділення з відсіченням залишку), MOD (залишок від цілочисельного ділення). Ці операції виконуються точно. Порядок виконання звичайний: спочатку множення, ділення та отримання залишку, потім додавання та віднімання. Службові слова DIV і MOD з двох сторін повинні відокремлюватися пробілами.
Приклади:
5 div 2 = 2
5 mod 2 = 1
5 div 6 = 0
5 mod 6 = 5
2) REAL (дійсний). Дані цього типу мають цілу, дробову частини та порядок (степінь числа 10). Цілі числа в операціях із дійсними даними автоматично приводяться до REAL-формату.
Дійсні числа позначаються дійсними сталими. Розглянемо приклад. Число 1.2345 можна позначити багатьма різними способами, наприклад, 123.45 10-2. Тут воно має цілу частину 123, дробову частину.45 і десятковий порядок -2. Цьому запису відповідає стала мови Паскаль 123.45E-2, у якій 123 – ціла частина,.45 – дробова, а E-2 – порядок. Це ж число можна задати сталою 0.12345E1 або 0.012345E+2, або 1.2345, або 12345e-04. Подання числа сталою, у якій перед десятковою крапкою записано єдину цифру від 1 до 9, називається нормалізованим, наприклад, 9.81 або 1.0E2 (число 0 має нормалізоване подання 0.0).
Дійсні сталі мають обов'язкову цілучастину, за якою записано дробовучастину і порядок (можливо, одне з них). Ціла частина – це непорожня послідовність цифр, дробова – непорожня послідовність цифр із крапкою на початку, а порядок – буква "E" або "e", можливо, із знаком "+" або "-", і однією або двома цифрами. Перед сталою може бути знак "-", і тоді вона задає від'ємне число: -12.345E-1.
Абсолютна величина (модуль) дійсних чисел зазвичай знаходиться в діапазоні від 1Е-38 до 1Е+38. Якщо число по модулю менше, ніж 1Е-38, відбувається втрата значущості (перетворення на нуль), а якщо більше 1Е+38, то виникає помилка (переповнення).
Не уточнюючи множину представних дійсних чисел, скажемо лише, що вона:
· є скінченною обмеженою підмножиною множини раціональних чисел;
· містить усі цілі числа, представні в типі integer (і багато інших, але все одно їх скінченна множина!).
Як бачимо, цілі числа задаються як цілими сталими, так і дійсними, наприклад, 2 і 2.0. Проте їм відповідають два цілком різних подання того самого числа, тобто значення двох різних типів. І в машині вони обробляються по-різному.
До дійсних значень застосовні ті ж самі арифметичні операції, що й до цілих, за винятком odd, div, modі деяких інших, про що ми скажемо в розділі 10. Їх можна порівнювати (=, <>, > тощо), і до них, і лише до них, застосовні дві операції round і trunc. Вони задаються у вигляді викликів функцій: round(3.62), trunc(2.71) тощо. Перша породжує ціле значення, найближче до операнда, наприклад, round(4.12)=4, round(3.62)=4, а друга – значення математичної функції "ціла частина", що позначається [ x ]: trunc(3.62)=3. Останнє твердження, утім, є не зовсім точним, тому що для від'ємного числа x значенням trunc(x) є не [ x ], а -[-x]: trunc(-3.14)=-3, хоча в математиці [-3.14]=-4.
За числовим значенням x, цілим або дійсним, можна обчислити дійсне значення "математичної функції"
| x |, sin x, cos x, arctg x, e x, ln x та ін.
Вираз із числовим значенням записується як аргумент у виклику функції з ім'ям відповідно
abs, sqrt, sin, cos, arctan, exp, ln або sqr,
наприклад,
abs(-2), sqrt(1-sin(x)), arctan(sin(1)/cos(1)), exp(ln(x)).
Значення аргументу у викликах тригонометричних функцій виражає кількість радіан, а не градусів. Крім того, виклик функції sqr(x) за дійсним значенням x породжує дійсне значення x2, а за цілим – ціле.
У системі Турбо Паскаль означено також нульмісну функцію Pi (її значенням є число, близьке до числа ) й одномісні функції Frac і Int, застосовні лише до дійсних. Вони задають обчислення дробової частини й дійсного подання цілої частини свого аргументу. Наприклад, sin(pi/2)=1.0, frac(3.1415)=0.1415, int(3.1415)=3.0.
Дійсні значення й операції, застосовні до них, утворюють типдійсних з ім'ям real.
3) CHAR (символьний тип). Значенням символьної величини є один символ (літера, цифра і т.ін.). Всі символи занесено в спеціальну таблицю у певному порядку. Порядковий номер символу є кодом цього символу. Всього в таблиці 256 символів (порядкові номери від 0 до 255). Значення символьного типу записується у вигляді символу, взятого в одинарні лапки (апострофи). Для того, щоб представити сам апостроф, його потрібно повторити два рази.
Приклади:
' А '
' Ь '
' 7 '
'; '
' '' ' – так може бути представлений сам апостроф
Коди великих та малих літер — різні. Оскільки символи мають порядкові номери (коди), то до них можна застосовувати лише операції порівняння одного з іншим. Наприклад, латинські літери розташовано в таблиці кодів в алфавітному порядку, тобто символ ' А ' має мінімальний код, a ' Z ' — максимальний (в ланцюжку великих латинських літер). Тому можна записати:
'А' < ' F '
'Y' > 'C'
'E' < > 'G'
4) BOOLEAN (булевий або логічний тип).Величини цього типу приймають одне з двох значень: TRUE (істина) чи FALSE (хибність). Слова TRUE і FALSE є булеві константи. До булевих операндів можна застосовувати такі операції: AND (логічне І), OR (логічне АБО), NOT (логічне НЕ). Якщо А, В, С — булеві змінні, то мовою Паскаль булевими виразами будуть, наприклад:
A and В
В and (C or A) and A
Результатом операції AND буде істина (TRUE) тільки у тому випадку, коли обидва операнди мають значення TRUE, інакше результатом буде хибність (FALSE). Результатом операції OR буде Істина (TRUE), якщо хоча б один із операндів мас значення TRUE (АБО один, АБО інший, АБО разом), інакше результатом буде хибність (FALSE). Результатом операції NOT (HE) завжди є протилежна величина (якщо А є TRUE, то NOT А є FALSE). Якщо вираз не має дужок, порядок виконання операцій такий: спочатку NOT, потім AND і, наприкінці, OR. Крім булевих операцій, булеві значення мають операції відношення: =, <>, >, <, > =, <=
Наприклад:
3.2<5.1 є TRUE
7=8 є FALSE
'D' > 'A' є TRUE
|