Оглавление Предисловие 1
Введение 3
Глава 1. Основные принципы разработки алгоритмов и программ 5
1.1. Этапы решения задач на ЭВМ 5
1.1.1. Постановка задачи 6
1.1.2. Формализация или математическая постановка задачи 7
1.1.3. Выбор или разработка метода решения 7
1.1.4. Разработка алгоритма 8
1.1.5. Программирование 9
1.1.6. Отладка 9
1.1.7. Вычисление и обработка результатов 12
1.2. Формы записи алгоритмов 12
1.2.1. Словесное описание 13
1.2.2. Запись алгоритма с помощью схем 13
1.2.3. Псевдокоды 17
1.2.4. Способ записи на языке программирования 18
1.3. Свойства алгоритмов 19
1.4. Качество программного продукта 21
1.5. Основы технологии программирования 24
1.5.1. Способы проектирования алгоритмов и программ 25
1.5.2. Основные идеи структурного программирования 27
1.5.3. Структурограммы 35
1.5.4. Рекомендации разработчику программ 38
1.6. Вопросы для самоконтроля 40
Глава 2. Введение в алгоритмический язык Turbo Pascal 41
2.1. Характеристика языка Паскаль 41
2.2. Turbo Pascal 43
2.2.1. Историческая справка 43
2.2.2. Пакет Turbo Pascal 7.0 44
2.3. Алфавит языка 45
2.3.1. Идентификаторы 46
2.3.2. Разделители 46
2.3.3. Специальные символы 47
2.4. Структура программы 48
2.4.1. Объявления 48
2.4.2. Структура программы в ТР 49
2.5. Типы данных 50
2.5.1. Целый тип 52
2.5.2. Вещественные типы 53
2.5.3. Символьный тип 56
2.5.4. Логический тип 59
2.6. Раздел объявлений 60
2.6.1. Объявление меток 60
2.6.2. Объявление констант 60
2.6.3. Объявление переменных 62
2.7. Выражения 63
2.7.1. Операции 63
Арифметические операции 63
Логические операции 64
Операции с битами 65
Отношения 66
2.7.2. Порядок вычисления арифметических и логических выражений 66
2.8. Стандартные функции 68
2.8.1. Арифметические функции 69
2.8.2. Логические и символьные функции 70
2.9. Вопросы для самоконтроля 71
Глава 3. Операторы 73
3.1. Простые операторы 73
3.1.1. Оператор присваивания 74
3.1.2. Пустой оператор 76
3.1.3. Оператор безусловного перехода 77
3.2. Структурные операторы 78
3.2.1. Составной оператор 78
3.2.2. Условный оператор if 79
3.2.3. Оператор выбора 81
3.2.4. Ввод и вывод данных 87
Ввод данных 87
Вывод данных 88
3.2.5. Операторы циклов 91
Оператор цикла с параметром 92
Оператор цикла с предусловием 98
Оператор цикла с постусловием 104
3.2.6. Примеры программ с использованием циклических структур 107
Итерационные циклы 107
Вложенные циклы 112
3.3. Вопросы для самоконтроля 125
Глава 4. Конструирование и преобразование типов данных 127
4.1. Описание типа 127
4.2. Преобразование типов данных 128
4.2.1. Неявные преобразования 128
4.2.2. Преобразование типов с помощью функций 129
4.2.3. Явные преобразования 129
4.3. Перечисляемый тип данных 131
4.4. Ограниченный тип данных 136
4.5. Структурированные типы. Массивы 138
4.5.1. Одномерные массивы 139
4.5.2. Определение двумерного массива в Turbo Pascal 149
4.5.3. Массив символов 162
4.5.4. Ошибки использования регулярного типа данных 163
4.6. Вопросы для самоконтроля 164
Глава 5. Процедуры и функции 165
5.1. Локальные и глобальные имена 168
5.2. Процедуры 169
5.3. Параметры 174
5.3.1. Параметры-значения 175
5.3.2. Параметры-переменные 175
5.3.3. Параметры-константы 176
5.3.4. Параметры без типа 177
5.4. Функции 180
5.5. Рекурсия в Turbo Pascal 186
5.6. Дополнительные типы подпрограмм 192
5.6.1. Внешняя подпрограмма 192
5.6.2. Встроенный ассемблер 193
5.6.3. Подпрограммы, имеющие тела в машинном коде 195
5.6.4. Процедуры обработки прерываний 195
5.7. Массивы открытого типа 196
5.8. Процедурный тип 198
5.9. Примеры подпрограмм 201
5.10. Вопросы для самоконтроля 220
Глава 6. Структурированные типы 221
6.1. Стандартный тип string 221
6.2. Расширенные возможности работы со строками 229
6.2.1. ASCIIZ-строки 229
6.2.2. Предопределенный тип PChar 229
6.2.3. Стандартный модуль Strings 231
Динамическое создание и уничтожение строк 231
Копирование строк 232
Конкатенация строк 233
Сравнение строк 234
Дополнительные функции работы со строками 234
6.3. Множественный тип данных 236
6.4. Комбинированный тип данных 243
6.5. Файловый тип данных 252
6.5.1. Файлы и доступ к ним 253
6.5.2. Подготовка файлов к работе и ее завершение 254
6.5.3. Операции ввода/вывода 255
6.5.4. Операции, позволяющие перемещаться по файлу 255
6.5.5. Прочие процедуры и функции для работы с файлами любого вида 256
6.5.6. Текстовые файлы 262
6.5.7. Стандартные текстовые файлы 264
6.5.8. Файлы без типа 265
6.6. Вопросы для самоконтроля 268
Глава 7. Структурирование программ 269
7.1. Организация и использование модулей 269
7.1.1. Раздел interface 272
7.1.2. Раздел implementation 274
7.1.3. Раздел инициализации 275
7.1.4. Совместное использование модулей 281
7.1.5. Компиляция модулей 284
7.1.6. Стандартные модули 286
7.2. Оверлей 288
7.2.1. Особенности использования оверлея 289
7.2.2. Организация и использование оверлея в ТР 290
7.2.3. Модуль Overlay 291
7.3. Вопросы для самоконтроля 295
Глава 8. Ссылочные типы. Динамические объекты сложной структуры 297
8.1. Динамические объекты и ссылки 298
8.1.1. Стандартные средства работы с указателями 300
8.1.2. Действия над ссылками 302
Присваивание 302
Сравнение ссылок 303
Уничтожение динамических объектов 304
8.1.3. Администратор кучи 304
8.1.4. Стандартные процедуры и функции 307
8.2. Динамические структуры данных 309
8.2.1. Стек 309
Начальное формирование стека 310
Добавление компонента в стек 310
Выборка компонентов из стека 311
8.2.2. Очередь 314
Начальное формирование очереди 315
Добавление компонента в очередь 316
Выборка компонента из очереди 317
8.2.3. Списки 319
Начальное формирование списка и добавление компонента в конец списка 320
Чтение и вставка компонента по ключу 321
8.2.4. Двунаправленные списки 329
Вставка элемента 330
Удаление элемента 331
Поиск элемента 331
8.2.5. Двоичное дерево 332
Поиск вершины в дереве 333
Включение звена в дерево 334
Удаление звена из дерева 336
8.3. Вопросы для самоконтроля 337
ПРИЛОЖЕНИЯ 339
Приложение 1. Система программирования ТР 7.0 341
П1.1. Интегрированная среда разработки Turbo Pascal 7.0 341
П1.1.1. Запуск и выход 341
П1.1.2. Компоненты 342
Полоса меню и подменю 342
Строка статуса и некоторые функциональные клавиши 344
Окно редактирования 345
П1.1.3. Работа в строке меню 346
Меню File 346
Меню Edit 350
Меню Search 352
Меню Run 355
Меню Compile 356
Меню Debug 358
Меню Tools 358
Меню Options 359
Меню Window 359
Меню Help 360
Приложение 2. Отладка программ в Turbo Pascal 7.0 364
П2.1. Общие вопросы отладки программ 364
П2.1.1. Классификация ошибок 365
П2.1.2. Как писать программы для отладки? 366
П2.2. Процесс отладки программ 367
П2.2.1. Случаи, когда отладка невозможна 367
П2.2.2. Обработка ошибок 369
Контроль ошибок ввода/вывода 369
Контроль на принадлежность допустимому диапазону 370
П2.2.3. Другие возможности обработки ошибок 372
П2.2.4. Что может делать отладчик? 372
П2.2.5. Обзор возможностей отладчика 373
Трассировка 373
Переход на курсор 373
Точки останова 373
Просмотр 374
Вычисление или модификация 374
Поиск 374
П2.2.6. Подготовка к использованию отладчика 374
П2.2.7. Начало сеанса отладки 376
П2.2.8. Рестарт сеанса отладки 376
П2.2.9. Окончание сеанса отладки 377
П2.3. Примеры сеансов отладки 377
П2.3.1. Трассировка программы 377
П2.3.2. Пошаговое выполнение программы 379
П2.3.3. Использование точек останова 381
П2.3.4. Использование комбинации клавиш + 383
П2.3.5. Просмотр значений 384
П2.3.6. Редактирование и удаление в окне Watches 386
Вычисление и модификация 387
Модификация выражений 388
П2.3.7. Поиск 389
Стек вызовов 389
Поиск процедур и функций 390
Приложение 3. Модуль Graph 392
П3.1. Подключение и инициализация модуля Graph 392
П3.1.1. Драйверы 393
П3.1.2. Процедуры и функции процесса инициализации 394
Процедура InitGraph 394
Функция GraphResult 396
Функция GraphErrorMsg 396
Процедура CloseGraph 397
Функция GetGraphMode 397
Процедура DetectGraph 397
Процедура RestorCRTMode 398
Процедура SetGraphMode 398
Функция GetDriverName 399
Функция GetModeName 399
Функция GetMaxMode 400
Функция GetMaxMode 400
Функция GetModeName 400
Процедура GetViewSettings 401
Процедура GraphDefaults 401
П3.2. Введение в работу с использованием модуля Graph 402
П3.2.1. Управление экраном 402
Система координат 402
Текущий указатель 402
Функции GetMaxX и GetMaxY 403
Процедура MoveTo 403
Процедура MoveRel 403
Процедуры GetX и GetY 404
Процедура SetViewPort 404
Процедура GetAspectRatio 405
Процедура SetAspectRatio 405
Процедура ClearDevice 407
Процедура ClearViewPort 407
П3.2.2. Геометрические примитивы 407
Процедура PutPixel 407
Функция GetPixel 408
Процедура SetLineStyle 408
Процедура Line 409
Процедура LineTo 409
Процедура LineRel 410
Процедура Rectangle 411
Процедура DrawPoly 411
Процедура Circle 412
Процедура Arc 412
Процедура GetArcCoords 412
Процедура Ellipse 414
П3.2.3. Текстовый вывод средствами Graph 415
Процедура OutText 415
Процедура OutTextXY 415
Процедура SetTextStyle 416
Процедура SetTextJustify 418
Процедура SetUserCharStyle 418
Функция TextWidth 418
Функция TextHeight 419
Функция InstallUserFont 419
П3.2.4. Цвета и стили линий. Заливка 419
Процедура SetColor 419
Функция GetColor 420
Процедура SetBkColor 420
Функция GetBkColor 420
Процедура Bar 420
Процедура FillEllipce 421
Процедура Bar3D 421
Процедура Sector 423
Процедура PieSlice 425
Функция GetMaxColor 425
Процедура GetPalette 425
Процедура SetAllPalette 426
Функция GetPaletteSize 426
Процедура SetFillStyle 427
Процедура SetFillPattern 429
Процедура GetFillPattern 430
Процедура GetFillSettings 430
Процедура FloodFill 431
Процедура FillPoly 431
Функция ImageSize 431
Процедура GetImage 432
Процедура PutImage 432
П3.2.5. Дополнительные процедуры и функции 435
Процедура SetActivePage 435
Функция InstallUserDriver 435
Процедура SetGraphBufSize 435
Функция RegisterBGIDriver 436
Функция RegisterBGIFont 436
Приложение 4. Модуль Crt 437
Приложение 5. Сообщения об ошибках 446
П5.1. Ошибки периода компиляции 447
П5.2. Ошибки, возникающие во время выполнения программ 467
П5.2.1. Ошибки, обнаруживаемые MS-DOS 468
П5.2.2. Ошибки ввода/вывода 469
П5.2.3. Критические ошибки 471
П5.2.4. Фатальные ошибки 471
Приложение 6
. Методические рекомендации к выполнению курсовой работы 475
П6.1. Общие требования к курсовой работе 475
П6.1.1. Темы курсовых работ 476
П6.1.2. Состав курсовой работы 476
П6.1.3. Пояснительная записка 477
П6.2. Краткие методические указания 477
П6.3. Типовой пример 478
П6.3.1. Формулировка задачи 478
П6.3.2. Спецификации задачи 479
П6.3.3. Математическая постановка задачи 479
П6.3.4. Описание вычислительных методов 480
П6.3.5. Схема алгоритма 481
П6.3.6. Текст программы 489
П6.3.7. Ручной просчет отладочного варианта 497
П6.3.8. Результаты машинного тестирования программы 499
П6.4. Примерный перечень тем курсовых работ 500
П6.4.1. Задание № 1 500
П6.4.2. Задание № 2 506
П6.4.3. Усложненные задания 511
П6.5. Правила оформления текстовых документов 513
Список литературы 517
Предметный указатель 519
XII Оглавление XI Оглавление