- •Основи програмування мовою Паскаль
- •Часть 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. Основні директиви компілятора Паскаля
{$A+} Включити/виключити вирівнювання за словами
{$B+} Включити/виключити повне обчислення булевых виразів
{$З MOVEABLE DEMANDLOAD DISCARDABLE}
Керування сегментом коду (тільки режими Windows і Protected):
MOVEABLE Система може змінити положення сегмента коду в пам'яті
FIXED Система не може змінити положення сегмента коду в пам'яті
PRELOAD Сегмента коду завантажується з початком виконання програми
DEMANDLOAD Сегмент коду завантажується тільки при обігу
PERMANENT Сегмент коду залишається в пам'яті після завантаження
DISCARDABLE Сегмент коду може бути вивантажений після обігу
{$D+} Включити/виключити отладочную інформацію
{$E+} Включити/виключити емуляцію співпроцесора дійсних чисел
{$F+} Включити/виключити Far-Виклики за замовчуванням
{$G Ім'я_модуля1, Ім'я_модуля2 ...}
Включити в проект зазначені модулі Unit (тільки режими Windows і Protected)
{$G+} Включити/виключити генерацію коду процесора 80286
{$I Ім'я_файлу} Включити вихідний текст файлу *.pas у програму
{$I+} Включити/виключити контроль операцій уведення-виведення
{$K+} Включити/виключити оптимізацію викликів підпрограм (тільки Windows)
{$L Ім'я_файлу} Включити файл *.obj у програму на етапі складання
{$L+} Включити/виключити генерацію Map-Файлу
{$M Стік, Хип-Мінімум, Хип-Максимум}
Указати розміри стека (1024-65520) і хипа (0-655360) для програми в байтах
{$N+} Включити/виключити підтримку співпроцесора 80x87
{$O+} Включити/виключити підтримку оверлеев
{$O Ім'я_модуля} Підключити оверлейный модуль (unit)
{$P+} Якщо включена, рядки "відкриті" ("закрити" для сумісності зі старими версіями)
{$Q+} Включити/виключити контроль переповнення
{$R+} Включити/виключити контроль переповнення
{$R Ім'я_файлу} Підключити файл ресурсів *.res (тільки Windows і Protected)
{$S Розмір} Указати розмір сегмента коду (тільки Windows і Protected)
{$S+} Включити/виключити перевірку переповнення стека
{$T+} Включити/виключити контроль типів покажчиків
{$V+} Включити/виключити строгий контроль довжини рядків
{$W+} Якщо включений, генеруються початковий і завершальний код для far-функцій і процедур
{$X+} Дозволити викликати функції як процедури
{$Y+} Якщо включена, до модуля додається таблиця перехресних посилань
Додаток 3. Основні повідомлення про помилки Паскаля
Повідомлення компілятора про синтаксичні помилки:
1 - вихід за межі пам'яті
2 - не зазначений ідентифікатор
3 - невідомий ідентифікатор
4 - повторний ідентифікатор
5 - синтаксична помилка
6 - помилка в дійсній константі
7 - помилка в целочисленной константі
8 - строкова константа перевищує розміри рядка
9 - занадто багато вкладених файлів
10 - неправильний кінець файлу
11 - рядок занадто довгий
12 - потрібен ідентифікатор типу
13 - занадто багато відкритих файлів
14 - невірне ім'я файлу
15 - файл не знайдений
16 - диск заповнений
17 - неправильна директива компілятора
18 - занадто багато файлів
19 - невизначений тип у визначенні посилання
20 - потрібний ідентифікатор змінної
21 - помилка у визначенні типу
22 - занадто більша структура
23 - базовий тип безлічі порушує границі
24 - компонентами файлу не можуть бути файли або об'єкти
25 - невірна довжина рядка
26 - невідповідність типів
27 - неправильний базовий тип відрізка типу
28 - нижня границя більше верхньої
29 - потрібний порядковий тип
30 - потрібна ціла константа
31 - потрібна константа
32 - потрібна ціла або дійсна константа
33 - потрібний ідентифікатор типу
34 - неправильний тип результату функції
35 - потрібний ідентифікатор мітки
36 - потрібний BEGIN
37 - потрібний END
38 - потрібно вирази типу Integer
39 - потрібно вирази типу, що перелічується
40 - потрібно вирази типу Boolean
41 - типи операндів не відповідають операторі
42 - помилка у вираженні
43 - невірне присвоювання
44 - потрібний ідентифікатор поля
45 - об'єктний файл занадто великої (більше 64 Кбайт)
46 - невизначена зовнішня процедура
47 - неправильний запис об'єктного файлу
48 - сегмент коду занадто великий (більше 65520 байт)
49 - сегмент даний занадто великий
50 - потрібний оператор DO
51 - невірне визначення PUBLIC
52 - неправильне визначення EXTRN
53 - занадто багато визначень типу EXTRN (більше 256)
54 - потрібно OF
55 - потрібно интерфейсная секція
56 - недійсне переміщуване посилання
57 - потрібно THEN
58 - потрібно TO або DOWNTO
59 - невизначений випереджальний опис
60 - занадто багато процедур (більше 512 в одному модулі)
61 - невірне перетворення типу
62 - розподіл на нуль
63 - невірний файловий тип
64 – неможливо прочитати або записати змінні даного типу
65 – потрібне використання змінної-покажчика
66 - потрібна строкова змінна
67 - потрібно вирази строкового типу
68 - програмний модуль не знайдений
69 - невідповідність часів програмних модулів
70 - невідповідність версій програмних модулів
71 - повторне ім'я програмного модуля
72 - помилка формату файлу програмного модуля
73 - потрібна секція реалізації
74 - типи констант і тип вирази оператора case не відповідають один одному
75 - потрібна змінна типу запис
76 - константа порушує границі
77 - потрібна файлова змінна
78 - потрібно вирази типу покажчик
79 - потрібно вирази типу real або integer
80 - мітка не перебуває усередині поточного блоку
81 - мітка вже визначена
82 - невизначена мітка в попередньому розділі операторів
83 - недійсний аргумент оператора @
84 - потрібно ключове слово UNIT
85 - потрібно вказати ";"
86 - потрібно вказати ":"
87 - потрібно вказати ","
88 - потрібно вказати "("
89 - потрібно вказати ")"
90 - потрібно вказати "="
91 - потрібно вказати ":="
92 - потрібно "[" або "(."
93 - потрібно "]" або ".)"
94 - потрібно "."
95 - потрібно ".."
96 - занадто багато змінних
97 - неправильна змінна циклу оператора FOR
98 - потрібна змінна цілого типу
99 - тут не допускаються файли
100 - невідповідність довжини строкової змінної або константи
101 - невірний порядок полів
102 - потрібна константа строкового типу
103 - потрібна змінна типу integer або real
104 - потрібна змінна типу, що перелічується
105 - помилка в операторі INLINE
106 - попереднє вирази повинне мати символьний тип
107 - занадто багато переміщуваних елементів
108 - недостатньо пам'яті для виконання програми
109 - немає можливості знайти файл .EXE
110 - модуль виконувати не можна
111 - компіляція перервана за допомогою клавіш Ctrl+Break
112 - константа оператора CASE перебуває поза границями
113 - помилка в операторі
114 - немає можливості викликати процедуру переривання
115 - для компіляції необхідна наявність співпроцесора 8087
116 - для компіляції необхідний режим 8087
117 - адреса призначення не знайдена
118 - у такій ситуації файли, що включаються, не допускаються
119 - помилка формату файлу .TPU
120 - потрібний NIL
121 - невірний квалификатор змінної
122 - недійсне посилання на змінну
123 - занадто багато символів (більше 64 Кбайт)
124 - занадто великий розділ операторів (більше 24 Кбайт)
125 - у модулі немає отладочной інформації
126 - файли повинні мати параметри VAR
127 - занадто багато умовних символів
128 - пропущена умовна директива
129 - пропущена директива ENDIF
130 - помилка в початкових умовних визначеннях
131 - заголовок не відповідає попередньому визначенню
132 - критична помилка диска
133 - не можна обчислити дане вирази
134 - некоректне завершення вирази
135 - невірний специфікатор формату
136 - неприпустиме непряме посилання
137 - тут не допускається використання структурної змінної
138 - не можна обчислити без блоку System
139 - доступ до даного символу отсутствует
140 - неприпустима операція із плаваючої коми
141 - не можна виконати компіляцію оверлеев на згадку
142 - повинна використовуватися змінна-процедура або функція
143 - неприпустиме посилання на процедуру або функцію
144 - цей модуль не може використовуватися в якості оверлейного
Повідомлення про помилки часу виконання програми:
1 - не знайдений файл
3 - не знайдений шлях
4 - занадто багато відкритих файлів
5 - відмовлене в доступі до файлу
6 - недоступний файловий канал
12 - недійсний код доступу до файлів
15 - неприпустимий номер дисководів
16 - не можна вилучити поточний каталог
17 - не можна при іменуванні вказувати різні дисководи
100 - помилка читання диска
101 - помилка запису на диск
102 - файлу не привласнене ім'я
103 - файл не відкритий
104 - файл не відкритий для введення
105 - файл не відкритий для виведення
106 - невірний числовий формат
150 - диск захищений від запису
151 - невідомий модуль
152 - дисковід перебуває в стані "не готовий"
153 - непізнана команда
154 - у вихідних даних
155 - при запиті до диска невірна довжина структури
156 - помилка при операції установки голівок на диску
157 - невідомий тип носія
158 - сектор не знайдений
159 - скінчився папір на пристрої друку
160 - помилка при записі на обладнання
161 - помилка при читанні з обладнання
162 - збій апаратури
200 - розподіл на нуль
201 - помилка при перевірці границь
202 - переповнення стека
203 - переповнення області, що динамічно розподіляється, пам'яті
204 - недійсна операція посилання
205 - переповнення операції із плаваючої коми
206 - зникнення порядку при операції плаваючої коми
207 - неприпустима операція із плаваючої коми
208 - не встановлена підсистема керування оверлеями
209 - помилка читання оверлейного файлу