| Введение ко второй части | 3 |
| Используемые сокращения | 8 |
| |
| АЛФАВИТ | 9 |
| |
| 1.1. Символы, используемые в идентификаторах | 9 |
| 1.2. Разделители | 10 |
| 1.3. Специальные символы | 11 |
1.3.1. Знаки пунктуации | 11 |
1.3.2. Знаки операций | 12 |
1.3.3. Зарезервированные слова | 12 |
| 1.4. Символы, используемые только в строках и комментариях | 12 |
| |
| СТРУКТУРА ПРОЕКТА | 13 |
| |
| 2.1. Структура программы-проекта (программы) | 14 |
| 2.2. Структура модуля | 18 |
2.2.1. Заголовок модуля | 19 |
2.2.2. Интерфейс модуля | 19 |
2.2.3. Исполнительная часть модуля | 20 |
2.2.4. Секция инициализации модуля | 20 |
2.2.5. Секция завершения модуля | 21 |
2.2.6. Модуль формы | 21 |
| 2.3. Структура DLL-библиотеки | 24 |
| |
| ЛОКАЛИЗАЦИЯ ПАРАМЕТРОВ | 25 |
| |
| 3.1. Блок локализации параметров | 25 |
| 3.2. Основные блоки | 26 |
| 3.3. Подчиненные блоки | 28 |
3.3.1. Подпрограмма | 28 |
3.3.2. Класс | 30 |
3.3.3. Объект | 31 |
3.3.4. Структурированный параметр | 31 |
| |
| ТИПЫ ДАННЫХ | 32 |
| |
| 4.1. Классификация типов данных | 32 |
| 4.2. Простые типы данных | 33 |
4.2.1. Целые типы | 34 |
4.2.2. Логические типы | 35 |
4.2.3. Символьные типы | 35 |
4.2.4. Перечисляемый тип | 37 |
4.2.5. Тип-диапазон | 38 |
4.2.6. Вещественные типы | 38 |
4.2.7. Арифметические стандартные подпрограммы | 39 |
4.2.8. Тип дата-время | 40 |
| |
| ВЫРАЖЕНИЯ | 43 |
| |
| 5.1. Константы | 43 |
5.1.1 Непосредственное использование констант | 43 |
5.1.2. Использование имени константы | 44 |
5.1.3. Константные выражения | 45 |
5.1.4. Типизированные константы | 46 |
| 5.2. Переменные | 47 |
| 5.3. Знаки операций | 50 |
5.3.1. Арифметические операции | 50 |
5.3.2. Логические операции | 51 |
5.3.3. Операции с битами информации | 56 |
5.3.4. Операции отношения | 58 |
5.3.5. Знак адресной операции @ | 61 |
| 5.4. Функции | 64 |
| 5.5. Круглые скобки | 66 |
| 5.6. Порядок вычисления выражений | 67 |
| |
| ОПЕРАТОРЫ ЯЗЫКА | 68 |
| |
| 6.1. Простые операторы | 68 |
6.1.1. Оператор присваивания | 68 |
6.1.2. Оператор безусловного перехода GOTO. Использование меток | 68 |
6.1.3. Пустой оператор | 70 |
| 6.2. Структурированные операторы | 70 |
6.2.1. Составной оператор | 71 |
6.2.2. Условный оператор IF | 71 |
6.2.3. Условный оператор CASE | 73 |
6.2.4. Оператор цикла REPEAT | 74 |
6.2.5. Оператор цикла WHILE | 76 |
6.2.6. Оператор цикла FOR | 79 |
6.2.7. Использование стандартных процедур Break и Continue |
в операторах циклов REPEAT, WHILE и FOR | 80 |
| |
| СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ | 83 |
| |
| 7.1. Тип-массив | 83 |
| 7.2. Типы-строки | 88 |
7.2.1. «Короткая» строка ShortString | 88 |
7.2.2. «Длинная» строка AnsiString | 92 |
7.2.3. Строка типа string | 97 |
7.2.4. Стандартные подпрограммы для «коротких» и «длинных» строк | 100 |
7.2.5. Строка, оканчивающаяся нулём, типа PChar | 102 |
| 7.3. Запись | 107 |
| 7.4. Множество | 115 |
| 7.5. Файл | 118 |
| |
| ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ | 120 |
| |
| 8.1. Указатель | 120 |
| 8.2. Работа с динамической памятью | 122 |
| 8.3. Работа со структурами данных | 127 |
| |
| ПРОЦЕДУРНЫЕ ТИПЫ | 135 |
| |
| ВАРИАНТНЫЙ ТИП ДАННЫХ | 137 |
| |
| 10.1. Типы данных вариантного типа | 137 |
| 10.2. Присваивание значения параметру вариантного типа | 139 |
| 10.3. Присваивание значения вариантного типа параметру другого типа | 145 |
| 10.4. Параметры вариантного типа в выражениях | 152 |
10.4.1. Унарные операции | 153 |
10.4.2. Операции сравнения | 158 |
10.4.3. Остальные бинарные операции | 164 |
| 10.5. Массивы вариантного типа | 169 |
| 10.6. Стандартные подпрограммы для параметров вариантного типа | 170 |
| |
| СОВМЕСТИМОСТЬ И ПРЕОБРАЗОВАНИЕ ТИПОВ ДАННЫХ | 173 |
| |
| 11.1. Идентичность типов | 173 |
| 11.2. Совместимость типов | 173 |
| 11.3. Совместимость для присваивания | 174 |
| 11.4. Преобразование типов | 175 |
| 11.5. Стандартные подпрограммы преобразования типов | 176 |
| |
| ПРОЦЕДУРЫ И ФУНКЦИИ | 179 |
| |
| 12.1. Структура подпрограммы | 179 |
| 12.2. Процедура | 180 |
| 12.3. Функция | 181 |
| 12.4. Формальные и фактические параметры | 183 |
12.4.1. Параметры-значения | 184 |
12.4.2. Параметры-переменные | 185 |
12.4.3. Параметры-константы | 186 |
12.4.4. Параметры без типа | 187 |
12.4.5. Массивы и строки открытого типа | 187 |
12.4.6. Конструктор открытого массива | 191 |
12.4.7. Открытые массивы вариантного типа | 193 |
12.4.8. Параметры-процедуры и параметры-функции | 198 |
| 12.5. Процедура EXIT | 201 |
| 12.6. Директивы подпрограмм | 202 |
12.6.1. Директивы, задающие соглашение по передаче данных | 202 |
12.6.2. Директива FORWARD | 203 |
12.6.3. Директива EXTERNAL | 204 |
12.6.4. Директива ASSEMBLER | 205 |
| 12.7. Рекурсивные процедуры и функции | 207 |
| |
| ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА | 209 |
| |
| 13.1. Стандартные подпрограммы для работы с файлами | 209 |
| 13.2. Использование файловых переменных при работе с файлами | 211 |
13.2.1. Стандартные процедуры и функции для всех файлов | 212 |
13.2.2. Стандартные процедуры и функции для текстовых файлов | 213 |
13.2.3. Стандартные процедуры и функции для типизированных файлов | 220 |
13.2.4. Стандартные процедуры и функции для файлов без типа | 225 |
| 13.3. Использование дескрипторов при работе с файлами | 231 |
| |
| ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ |
| ПРОГРАММИРОВАНИЕ В OBJECT PASCAL | 235 |
| |
| 14.1. Рекомендуемые правила назначения имён классов и их элементов | 236 |
| 14.2. Пример использования ООП | 236 |
| 14.3. Понятия класса и объекта | 240 |
14.3.1. Инкапсуляция | 242 |
14.3.2. Наследование | 243 |
14.3.3. Полиморфизм | 244 |
| 14.4. Структура класса | 244 |
14.4.1. Области доступности элементов класса | 246 |
14.4.2. Поля | 247 |
14.4.3. Методы | 248 |
14.4.4. Виртуальные методы | 249 |
14.4.5. Динамические методы | 250 |
14.4.6. Методы обработки сообщений | 251 |
14.4.7. Конструкторы и деструкторы | 253 |
14.4.8. Свойства | 255 |
| 14.5. Процедурный тип для методов | 258 |
| 14.6. Методы класса | 259 |
| 14.7. Указатель на класс (метакласс) | 261 |
| 14.8. Операции с классами и объеюами | 263 |
| |
| DLL-БИБЛИОТЕКИ | 265 |
| |
| 15.1. Создание DLL-библиотеки | 265 |
| 15.2. Использование средств DLL-библиотеки | 267 |
15.2.1. Статическое импортирование подпрограмм | 267 |
15.2.2. Динамическое импортирование подпрограмм | 270 |
| |
| ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ | 271 |
| |
| 16.1. Структура исключения | 271 |
| 16.2. Конструкции, использующие исключения | 272 |
16.2.1 Конструкция TRY… FINALLY | 273 |
16.2.2. Конструкция TRY… EXCEPT | 274 |
| 16.3. Создание исключений | 275 |
| 16.4. Инициализация исключений | 275 |
| 16.5. Обработка исключений | 275 |
| |
| Приложение А |
| Зарезервированные слова Object Pascal 9.0 | 281 |
| |
| Приложение Б |
| Программа «Интеллектуальный редактор» | 283 |
| |
| СПИСОК ЛИТЕРАТУРЫ | 315 |