У своїй роботі програміст завжди стикається з таким поняттям, як величина. Що ж таке величина? З точки зору програмування величини — це дані, що обробляються програмами.
Мова Паскаль інтерпретує дані, як константи або змінні. Як перші, так і другі визначаються ідентифікаторами (іменами), за допомогою яких можна звертатися для одержання відповідних значень.
Константами називаються елементи даних, яким присвоюються значення в описовій частині програми, й у процесі виконання програми їх змінювати заборонено.
Для визначення констант служить зарезервоване слово const.
Формат опису.
Const < ідентифікатор > = < значення константи >;
Приклад:
Const Max=1000;
Vxod='сегмент 5 ';
Є ряд констант, до значень яких можна звертатися без попереднього опису. Наприклад:
Ідентифікатор | Тип | Значення | Опис |
True | Boolen | True | Істина |
False | Boolen | False | Хибність |
Maxint | integer | Максимальне ціле |
Змінні, на відміну від констант, можуть змінювати свої значення в процесі виконання програми. Кожна змінна і константа належать до визначеного типу даних. Тип констант визначається компілятором автоматично. Тип змінних обов'язково вказується перед тим, як їх використати. Для опису змінних призначено зарезервоване слово var.
Формат опису:
Var <ідентифікатор>: <тип даних>;
Приклад:
Var Sum1, Sum2: real;
Тип даних - це діапазон значень, що можуть приймати об'єкти програми, і сукупність операцій, які дозволяється виконувати над цими значеннями. Усі типи даних у мові програмування Паскаль розділяються на дві групи: скалярні (прості), структуровані (складені).
Скалярні типи у свою чергу підрозділяються на стандартні та типи користувача. Стандартні типи пропонуються користувачам розроблювачами системи Turbo Pascal. Типи користувача - розроблюються самим програмістом.
До стандартних скалярних типів відносяться наступні типи: цілі, дійсні, літерні, булівські.
Величини цілих типів можуть бути подані як у десятковій, так і в шістнадцятковій системах. Якщо число представлене в шістнадцятковій системі, перед ним без проміжку записується знак $. Діапазон зміни шістнадцяткових чисел від $0000 до $FFFF.
Цілі типи даних являють собою значення, що можуть використовуватися в арифметичних виразах. Стандартні цілі типи зведені в таблицю:
Тип | Діапазон | Необхідна пам'ять (байт) |
Byte | 0...255 | |
Shortint | -128... 127 | |
Integer | -32768... 32767 | |
Word | 0... 65535 | |
Longint | -2147483648... 2147483647 |
Дійсні типи даних являють собою дійсні значення, що використовуються в арифметичних виразах і займають у пам'яті від 4 до 10 байт. У програмі мовою Паскаль допускається представлення дійсних значень у вигляді як із плаваючою, так і з фіксованою точкою.
Дійсні десяткові числа з фіксованою точкою записуються за звичайними правилами арифметики. Єдине, що відрізняє цей формат від математичного, це те, що ціла частина від дробової відокремлюється десятковою точкою, а не комою.
Якщо десяткова точка відсутня, число вважається цілим. Перед числом може знаходитися знак «+» або «-». Якщо знак відсутній, за замовчуванням число вважається додатнім.
Дійсні десяткові числа у форматі з плаваючою точкою подаються в наступному (експоненціальному) вигляді:
mЕ + р,
де т - мантиса (ціле або дробове число з фіксованою десятковою точкою), Е - означає «десять у степені», р - порядок (ціле число).
Взагалі мантиса має бути нормалізованою, тобто представленою у вигляді числа, що належить діапазону від 0 до 1 (це означає, що точка завжди знаходиться перед першою цифрою числа). Однак можна записати мантису у вигляді будь-якого дробового числа з фіксованою точкою. Нормалізація при цьому виконується системою автоматично. Приклад:
Число v форматі з плаваючою крапкою | Значення числа |
0.4500Е+02 | 0.45*102 = 45 |
--2.600Е05 | --2.6*105 = -260000 |
+0.45670Е-02 | 0.4567*10-2 = 0.004567 |
Стандартний найчастіше використовуваний дійсний тип даних наведений у таблиці:
Тип | Діапазон значень | Мантиса (кількість значущих цифр) | Необхідна пам'ять |
Real | 2.9*10Е-39.. 1.7*10Е38 | 11-12 |
Літерний (символьний) тип може набувати значень кодової таблиці комп'ютера. Символьній змінній в пам'яті виділяється один байт, тому вона можна зберегти тільки один символ ASCII таблиці.
Булівський тип подається двома значеннями: True (істина) або False (хибність). Цей тип застосовується в логічних виразах і виразах відношення.
Структуровані типи у своїй основі мають один або кілька скалярних типів даних. До структурованих типів даних відносяться рядки, масиви, файли, записи і т.д. їх ми будемо вивчати пізніше.
Змінні і константи всіх типів використовуються у виразах.
Вираз задає порядок виконання дій над елементами даних і складається з операндів (констант, змінних, звертань до функцій), круглих дужок і знаків операцій. Круглі дужки ставляться, як і в математиці, для керування порядком виконання операцій. Якщо дужки відсутні, операції виконуються в залежності від їх пріоритетів, про що буде сказано далі.
У мові Паскаль є такі операції: арифметичні; відношення (порівняння); логічні. Операції можуть бути унарними та бінарними.
У першому випадку операція відноситься до одного операнду і завжди записується перед ним, у другому операція виражає відношення між двома операндами і записується між ними.
Арифметичні операції задають арифметичні дії у виразах над значеннями операндів цілих та дійсних типів.
Найчастіше використовуються арифметичні операції, що подані в наступній таблиці:
Операція | Дія | Тип операндів | Тип результату |
Бінарні | |||
+ | Додавання | Цілий | Цілий |
Дійсний | Дійсний | ||
- | Віднімання | Цілий | Цілий |
Дійсний | Дійсний | ||
* | Множення | Цілий | Цілий |
Дійсний | Дійсний | ||
/ | Ділення | Цілий | Дійсний |
Дійсний | Дійсний | ||
Div | Ділення націло | Цілий | Цілий |
Mod | Залишок від ділення | Цілий | Цілий |
Унарні | |||
+ | Збереження знака | Цілий | Цілий |
Дійсний | Дійсний | ||
- | Заперечення знака | Цілий | Цілий |
Дійсний | Дійсний |
Операції відношення виконують порівняння двох операндів і визначають значення виразу є істинним або хибним. Результат завжди має булівський тип одного з двох значень: True (істина) або False (хибність).
Операція | Назва | Вираз | Результат |
= | Дорівнює | А=В | True, якщо А дорівнює В |
<> | Не дорівнює | А<>В | True, якщо А не дорівнює В |
> | Більше | А>В | True, якщо А більше В |
< | Менше | А<В | True, якщо А менше В |
>= | Більше або дорівнює | А>=В | True, якщо А більше або дорівнює В |
<= | Менше або дорівнює | А<=В | True, якщо А менше або дорівнює В |
Результатом виконання логічного (булівського) виразу є логічне значення True або False. Список логічних операцій наведений у наступній таблиці:
Операція | Дія | Вираз | А | В | Результат |
not | Логічне заперечення | not A | True | False | |
False | True | ||||
and | Логічне «І» | A and В | True | True | True |
True | False | False | |||
False | True | False | |||
False | False | False | |||
or | Логічне «АБО» | A or В | True | True | True |
True | False | True | |||
False | True | True | |||
False | False | False |
Виконання кожної операції відбувається з урахуванням її пріоритету. Значення пріоритетів зазначені в наступній таблиці:
Операція | Пріоритет | Вид операції |
Not, унарні «—»і «+» | перший (вищий) | Унарна операція |
*, /,div, mod, and | другий | Операції типу множення |
+, -,or | третій | Операції типу додавання |
=, <>, <, >, <=, >= | четвертий (нижчий) | Операції відношення |
Арифметичні вирази у якості операндів можуть містити імена функцій. З поняттям функції ми будемо знайомитись пізніше в курсі програмування, але стандартні функції (cos, sin, х2та інші) вам знайомі з курсу математики, і їх використання у курсі інформатики відрізняється тільки правилами запису (синтаксису). Так, на відміну від математики, в програмуванні аргумент функції обов'язково береться в круглі дужки. Нижче поданий список цих функцій, де літерами X та І позначені відповідно: X - цілі та дійсні типи, І - тільки цілі.
Abs(X) — обчислення абсолютного значення (модулю) X. Тип результату збігається з типом параметра.
АrсТап(Х) — обчислення кута, тангенс якого дорівнює X, значення кута подано в радіанах і може знаходитися в діапазоні від -π/2 до π/2. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/ π. Результат має дійсний тип.
Cos(X) — обчислення косинуса X, параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну слід значення кута помножити на число 180/ π. Результат має дійсний тип.
Ехр(х) — обчислення значення експоненти аргументу (Ех). Результат завжди має дійсний тип.
Frac(X) — знаходження дробової частини X. Результат має дійсний тип.
Int(Х) — знаходження цілої частини X (дробова частина відкидається). Результат має дійсний тип.
Ln(x) — обчислюється натуральний логарифм аргументу. Результат має дійсний тип. За допомогою функцій Ехр та Lп можна обчислити довільний степінь числа наступним чином: ab=Exp(b*Ln(a)).
Pi — повертає значення числа π (3.1415926).
Sin(X) — обчислення синуса X. Параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну слід значення кута помножити на число 180/ π. Результат має дійсний тип.
Sqr(X) — піднесення до квадрату значеннях. Тип результату збігається з типом параметра.
Sqrt(X) — обчислення квадратного кореня з Х. Тип результату дійсний.
Random — генерує значення випадкового числа з діапазону від 0 до 0.99. Тип результату дійсний.
Random(P) — генерує значення випадкового числа з діапазону від 0-до Р-1. Тип результату цілий. Щоб випадкові числа були «більш випадковими», необхідно періодично змінювати базу генерації. Для цього використовується процедура Randomize, що дозволяє при кожному новому запуску програми отримувати різні випадкові числа.