- •Основи програмування мовою Паскаль
- •Часть 1. Основы языка Паскаль 2
- •Часть 2. Элементы профессионального программирования на Паскалі 62
- •Частина 1. Основи мови Паскаль
- •1. Алгоритм і програма
- •1.1. Алгоритм
- •1.2. Властивості алгоритму
- •1.3. Форми запису алгоритму
- •1.4. Програма й програмне забезпечення
- •1.5. Етапи розробки програми
- •2. Дані в мові Паскаль
- •2.1 Константи
- •2.2 Змінні й типи змінних
- •3. Арифметичні вирази
- •4. Лінійний обчислювальний процес
- •4.1 Оператор присвоювання
- •4.2 Оператор уведення
- •4.3 Оператор виведення
- •4.4 Керування виводом даних
- •4.5 Вивід на друк
- •5. Структура простої програми на Паскалі
- •6. Компілятор і оболонка Turbo Pascal
- •7. Обчислювальний процес, що розгалужується, і умовний оператор
- •7.4. Короткий умовний оператор
- •If логічний_вираз then оператор1;
- •7.5. Повний умовний оператор
- •If логічний_вираз then оператор1
- •7.7. Вкладені умовні оператори
- •7.9. Приклади програм з умовним оператором
- •8. Директиви компілятора й обробка помилок уведення
- •9. Оператор циклу. Цикли із передумовою і після-умовою
- •10. Цикл із лічильником і дострокове завершення циклів
- •11. Типові алгоритми табулювання функцій, обчислення кількості, суми й добутку
- •11.1 Алгоритм табулювання
- •11.2 Алгоритм організації лічильника
- •11.3 Алгоритми нагромадження суми й добутку
- •12. Типові алгоритми пошуку максимуму й мінімуму
- •13. Розв'язок навчальних завдань на цикли
- •14. Одномірні масиви. Опис, уведення, вивід і обробка масивів на Паскалі
- •15. Розв'язок типових завдань на масиви
- •Частина 2. Елементи професійного програмування на Паскалі
- •16. Кратні цикли
- •16.1 Подвійний цикл і типові завдання на подвійний цикл
- •16.2 Оператор безумовного переходу
- •17. Матриці й типові алгоритми обробки матриць
- •18. Підпрограми
- •18.1 Процедури
- •18.2 Функції
- •18.3 Масиви як параметри підпрограми
- •18.4 Відкриті масиви
- •19. Безлічі й перечислимые типи
- •20. Обробка символьних і строкових даних
- •20.1. Робота із символами
- •20.2 Робота з рядками
- •21. Текстові файли
- •21.1 Загальні операції
- •21.2 Приклади роботи з файлами
- •21.3 Робота з параметрами командного рядка
- •22. Записи. Бінарні файли
- •23. Модулі. Створення модулів
- •23.1. Призначення й структура модулів
- •Implementation
- •23.2. Стандартні модулі Паскаля
- •24. Модуль crt і створення простих інтерфейсів
- •25. Модуль Graph і створення графіки на Паскалі
- •Додаток 1. Таблиці Ascii-Кодів символів для операційних систем dos і Windows
- •Додаток 2. Основні директиви компілятора Паскаля
- •Додаток 3. Основні повідомлення про помилки Паскаля
- •Додаток 4. Додаткові лістинги програм
- •Додаток 5. Розширені коди клавіатури
- •Ascii‑ коди
- •Розширені коди
- •Додаток 6. Правила гарного коду
- •Додаток 7. Рекомендована література
2. Дані в мові Паскаль
Будь-яка програма виконує над вихідними даними деякі розрахунки. При цьому, як і змінні або константи в математику, окремі елементи даних позначаються іменами, що даються програмістом (ідентифікаторами). Будь-які ідентифікатори в мові Паскаль будуються за наступними правилами:
імена можуть включати латинські букви, цифри й знак підкреслення ( для простоти вилучимо деякі інші символи, дозволені в іменах);
ім'я складається з одного слова; якщо потрібен пробіл в імені, він заміняється на підкреслення: так, My_1буде правильним ідентифікатором, аMy 1– немає;
ім'я завжди починається з букви: допустимо об'єкт із іменем A1, але не1A; прописні й малі літери в іменах не різняться Паскалім:x1іX1– це та сама величина;
імена не можуть збігатися із зарезервованими в мові службовими словами, що позначають певні в мові операції над даними: наприклад, не можна назватиBeginабоBEGINні одну величину в програмі, тому щоbegin– зарезервоване службове слово, а прописні й малі літери в службових словах також не різняться. Познайомитися з більшістю службових слів ми зможемо в процесі вивчення мови.
2.1 Константи
Константоюназивають величину, значення якої не міняється в процесі виконання програми.
Числові константи служать для запису чисел. Розрізняють наступні їхні види:
Цілочисельні(цілі) константи: записуються зі знаком + або -, або без знака, по звичайних арифметичних правилах:
-10 +5 5
Дійснічисла можуть записуватися в одній із двох форм:
звичайний запис:2.5 -3.14 2.- зверніть увагу, що ціла частина відділяється від дробової символомкрапки;
експонентна ("наукова") форма: у цьому записі дійсне число представляється у вигляді m*10p, де m –мантисаабо основа числа, 0.1≤|m|≤1, p –порядокчисла, це цілочисельна константа. Дійсно, будь-яке дійсне число можна представити в експонентній формі:
-153.5 -0.1535*103
99.005 0.99005*102
У всіх Ibm-Сумісних комп'ютерах дійсні числа зберігаються як сукупність мантиси й порядку, що дозволяє спростити операції над ними, використовуючи спеціальну арифметику, що окремо обробляє мантису й порядок. Для програмного запису числа в експонентній формі замість "помножити на 10 у ступені" використовується позначення Eабоe(латинська):
-153.5 -0.1535*103 -0.1535E3 або -1.535E02
99.005 0.99005*102 0.99005E+2 або 9.9005e+01
Без вживання спеціальних заходів, програма на Паскалі буде виводити на екран і принтер дійсні числа саме в такій формі. Крім того, така форма зручна для запису дуже маленьких і дуже більших чисел:
1030 1e30
-1020 -1E20
10-30 1E-30
Оскільки розмір пам'яті, що приділяється під мантису й порядок, обмежений, те дійсні числа завжди представляються в пам'яті комп'ютера з деякою погрішністю. Наприклад, найпростіший речовинний дріб2/3дає в десятковій виставі0,666666...і, незалежно від розміру пам'яті, виділюваної для зберігання числа, неможливо зберігативсійого знаки в дробовій частині. Однієї з типових проблем програмування є облік можливих погрішностей при роботі з речовинними числами.
Крім числових констант існують і інші їхні види:
логічніконстанти служать для перевірки істинності або хибності деяких умов у програмі й можуть ухвалювати тількиодне із двох значень: службове словоtrueпозначає істину, аfalse– неправда;
символьніконстанти можуть ухвалювати значення будь-якого символу, що друкується, і записуються як символ, укладенийвапострофи ('одинарні лапки'):
'Y' 'я' ' '
В останньому випадку значення символьної константи дорівнює символу пробілу. Якщо потрібно записати сам символ апострофа як символьну константу, усередині зовнішніх апострофів він подвоюється: ''''
До символьних також ставляться константи виду #X, де X – числове значення від 0 до 255 включно, що представляє собою десятковий Ascii-Кодсимволу. Таблиці Ascii-Кодів, використовуваних операційними системами DOS і Windows, наведено в Додатку 1. Наприклад, значення #65 буде відповідати коду символу 'A' латинської. Обробка натискань клавіш і розширені коди клавіатури описано в главі 24 і Додатку 5.
Строковіконстанти – це будь-які послідовності символів, укладених в апострофи. Як правило, строкові константи служать для запису запрошень до введення даних, видаваних програмою, виведення діагностичних повідомлень і т.п.:
'Уведіть значення X:'
'Відповідь='
Якщо в строковій константі необхідно записати сам символ апострофа, це робиться так само, як для символьних констант.
Іменовані константиописуються в розділі описів програми оператором наступного виду:
const Ім'я1=Значення1;
Ім'я2=Значення2;
. . .
Имяn=Значениеn;
Тут ключове слово constпоказує початок розділу описів іменованих констант. Ясно, що найчастіше зручніше звертатися до константи по імені, чому щораз переписувати її числове або строкове значення. Приклад розділу констант:
const e=2.7182818285;
lang='Turbo Pascal 7.1';
Тут описана числова константа eзі значенням підстави натурального логарифма й строкова константа з іменемlang, що містить рядок 'Turbo Pascal 7.1'.
Кожне ім'я, що дається програмістом, повиннебути унікальним у межах однієї програми. Якщо ми включимо цей розділ у свою програму, ми вже не зможемо створити в ній інших об'єктів з іменамиeіlang.