- •Основи програмування мовою Паскаль
- •Часть 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.2 Змінні й типи змінних
Змінниминазивають величини, значення якихможуть змінюватисяв процесі виконання програми. Кожна змінна задається своїм унікальним іменем, побудованим за правилами, зазначеним на початку глави. Максимально можлива довжина імені залежить від реалізації Паскаля, теоретично можна давати змінним імена аж до 63 символів довжиною, що чи ледь актуально – звичайно імена не довше 5-10 символів.
Оскільки будь-які дані в пам'яті комп'ютера зберігаються в числовій формі й двійковій системі числення, крім імені, змінної обов'язково слід привласнити й тип, що визначаєдіапазон значень, прийнятих змінної, іспосіб її обробкимашиною. Пояснимо сказане на прикладі. Як видне з Додатка 1, латинська більша буква 'A' має десятковий код 65, або 01000001 у двійковій виставі. Без додаткової інформації протипданих, що зберігаються в деякій комірці пам'яті, комп'ютеру було б неможливо розв'язати, що саме представляють із себе ці дані – число 65, код символу 'A' або щось ще. У будь-якій мові програмування, у тому числі й у Паскалі, існує стандартний набір типів, до яких може бути віднесена та або інша сукупність комірок пам'яті. Інформацію про типи даних Паскаля зручно звести в таблицю. Рядка цієї таблиці будуть упорядкований постаршинству типів, від самого "молодшого", що вимагає найменше число байт для представлення, і, відповідно найменший діапазон, що представляє, можливих значень, до самого "старшого" найбільший діапазон, що представляє, значень. У таблиці представлені не всі можливі, а лише основні типи даних Паскаля.
Ключове слово Паскаля |
Назва й опис типу |
Обсяг пам'яті, байт |
Діапазон можливих значень |
Boolean |
Логічний: зберігає одну логічну змінну |
1 |
true і false |
Char |
Символьний: зберігає код одного символу з набору Ascii-Кодів |
1 |
від 0 до 255 включно (28=256) |
Integer |
Цілочисельний |
2 |
±215 |
Word |
Цілочисельний без знака |
2 |
±216 - діапазон удвічі більше, тому що 16-й біт не зайнятий під знак числа |
Longint |
Довге ціле: для представлення більших цілочисельних значень |
4 |
±231 |
Real |
Дійсне число з точністю представлення до 11-12 знака в дробовій частині |
6 |
~ 2.9*10-39 - 1.7*1038 |
Double |
Дійсне число з точністю представлення до 15-16 знака в дробовій частині |
8 |
~ 5*10-324 – 1.7*10308 |
String |
Послідовність символів типу Char довжиною від 1 до 255 |
2-256 (дані рядка + 1 байт для зберігання її довжини) |
Будь-які рядки тексту, що складаються із символів, що друкуються |
Теоретично для запису змінної типу Boolean було б досить 1 біта, але мінімальна «адресуемая» одиниця пам'яті – 1 байт (див. Додаток 1). У цьому ж Додатку уточните, як саме обсяг пам'яті в байтах, виділюваної під змінну, впливає на діапазон, що представляються їй значень.
Цілочисельні й символьні типи узагальнено називають порядковими, підкреслюючи цим, що дані типи мають кінцевий набір значень, які можуть бути впорядковані або перераховані. Нагадаємо, що дійсні значення зберігаються в пам'яті комп'ютера інакше, чому цілі – а саме, як сукупність мантиси й порядку.
Зрозуміло, завдання правильного вибору типів даних цілком лягає на програміста. Наприклад, якщо деякий лічильник у Вашій програмі може ухвалювати Цілочисельні значення від 1 до 100000, неправильно було б описувати його як змінну типу Integer – адже 215=32768 і при досягненні лічильником цієї величини відбудеться скиданняйого значення, яке стане рівно -32768. Розумним у цьому випадку було б опис лічильника як змінному типу Longint.
Змінні описуються в програмі оператором наступного виду:
var Список1:Тип1;
Список2:Тип2;
. . .
Списокn:Типn;
Тут список– набір імен змінних, розділених комами (або одна змінна), атип– кожної з розглянутих вище типів даних. Наприклад, конструкція
var t,r:real;
i:integer;
описує 2 дійсних змінних з іменами tіr, а також целочисленную змінну з іменемi. Ключове словоvarможна й продублювати, але звичайно такої необхідності немає. Скороченняvarутворене від англійського слова "Variable" (змінна).