Введение ко второй части | 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 |