Рекомендуем

Сборник примеров и задач по программированиюМосквитина О.А., Новичков В.С., Пылькин А.Н. Сборник примеров и задач по программированию
Разработка приложений в среде Delphi. В 2 частях. Часть 2.  Компоненты и их использованиеСоколова Ю.С., Жулева С.Ю. Разработка приложений в среде Delphi. В 2 частях. Часть 2. Компоненты и их использование
Разработка приложений в среде Delphi. В 2 частях. Часть 1.  Общие приемы программированияСоколова Ю.С., Жулева С.Ю. Разработка приложений в среде Delphi. В 2 частях. Часть 1. Общие приемы программирования

Книга

Алгоритмизация и программирование на Турбо Паскале

Учебное пособие для вузов
2005 г.
438 стр.
Тираж 2000 экз.
Формат 60х90/16 (145x215 мм)
Исполнение: в мягкой обложке
ISBN 5-93517-183-X
ББК 32.973
УДК 681.33
Гриф УМО
Допущено учебно-методическим объединением вузов по университетскому политехническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности 220400 - «Программное обеспечение вычислительной техники и автоматизированных систем»
Аннотация
В книге рассмотрены вопросы алгоритмизации и программирования для персональных компьютеров на алгоритмическом языке Турбо Паскаль 7.0. Описаны стандартные конструкции языка и особенности реализации основных алгоритмов. Изложены основы структурного программирования. Текст иллюстрирован примерами проектирования различных алгоритмов и программ. Для учащихся высших и средних специальных учебных заведений. Может быть использовано в качестве практического руководства при изучении основ современных информационных технологий.

Оглавление

ПРЕДИСЛОВИЕ 3

ВВЕДЕНИЕ 5

ГЛАВА 1. ОСНОВЫ АЛГОРИТМИЗАЦИИ 10
1.1. Понятие алгоритма 10
1.2. Алгоритмическая система 12
1.3. Алгоритмизация 13
1.4. Средства записи алгоритмов 14
1.4.1 Словесная запись алгоритмов 15
1.4.2. Схемы алгоритмов 18
1.4.3. Структурограммы 23
1.5. Технологии разработки алгоритмов 25
Вопросы для самоконтроля 29
Упражнения 29
1.6. Структуры алгоритмов 31
1.6.1. Алгоритм линейной структуры 31
1.6.2. Ветвления 32
1.8. Циклы 34
1.9. Итерационные циклы 42
1.10. Вложенные циклы 42
1.11. Вспомогательные или подчиненные алгоритмы 45
Вопросы для самоконтроля 48
Упражнения 48

ГЛАВА 2. ВВЕДЕНИЕ В СРЕДУ ПРОГРАММИРОВАНИЯ TURBO PASCAL 50
2.1. Состав среды Turbo Pascal 50
2.2. Системное меню 52
2.2.1. Меню опции File 52
2.2.2. Меню редактирования Edit 53
2.2.3. Меню поиска информации Search 54
2.2.4. Меню опции Run 54
2.2.5. Меню опции Compile 55
2.2.6. Меню отладки Debug 56
2.2.7. Меню инструментальных средств Tools 56
2.2.8. Меню опции Option 56
2.2.8.1. Директивы компилятора 57
2.2.9. Меню окон Window 58
2.2.10. Меню информационной помощи Help 59
2.3. Загрузка среды Turbo Pascal 60
2.4. Работа с помощью меню 60
2.5. Ввод программы в среде Turbo Pascal 62
2.6. Сохранение программы в файле 62
2.7. Работа с существующей программой 63
2.8. Компиляция программы в среде Turbo Pascal 64
2.9. Выполнение программ в среде Turbo Pascal 67
2.10. Выход из среды Turbo Pascal 67
Вопросы для самоконтроля 68
Упражнения 68

ГЛАВА 3. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ 76
3.1. Основные символы 76
3.2. Данные 76
3.2.1. Понятие типа данных 76
3.2.2. Константы 77
3.2.2.1. Числовые константы 77
3.2.2.1.1. Целые константы 77
3.2.2.1.2. Вещественные константы 78
3.2.2.2. Логические константы 79
3.2.2.3. Символьные константы 79
3.2.2.4. Строковые константы 79
3.2.3. Переменные и идентификаторы 79
3.2.4. Целые типы 80
3.2.5. Вещественные типы 81
3.3. Арифметические выражения 81
3.4. Стандартные функции 83
3.5. Оператор присваивания 84
3.6. Структура программы 85
3.7. Стиль записи программ на языке Паскаль 86
3.8. Пример составления программы 88
Вопросы для самоконтроля 89
Упражнения 90

ГЛАВА 4. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ 92
4.1. Условный оператор 92
4.2. Логический (булевый) тип 93
4.4. Симвлоьный тип 95
4.3. Операторы в конструкциях then и else 96
4.4. Оператор варианта 99
Вопросы для самоконтроля 102
Упражнения 102

ГЛАВА 5. ПРОЕКТИРОВАНИЕ ПРОГРАММ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ 106
5.1. Программирование циклических программ с известным числом повторений 106
5.1.1. Оператор цикла с параметром 106
5.1.2. Табулирование функции 107
5.1.3. Вычисление конечных сумм и произведений 109
5.1.4. Использование различных типов данных в циклических программах 111
5.1.4.1. Перечисляемый тип 113
5.1.4.2. Ограниченные (интервальные) типы 114
Вопросы для самоконтроля 115
Упражнения 115
5.2. Конструирование программ циклической структуры с неизвестным числом повторений. 118
5.2.1 Оператор цикла с предусловием 118
5.2.2. Оператор цикла с постусловием 120
5.2.3. Итерационные циклы. Вычисление суммы ряда 123
5.2.4. Метод итерации для уточнения корней 127
Вопросы для самоконтроля 128
Упражнения 129
5.3. Проектирование алгоритмов и программ со структурой вложенных циклов 133
5.3.1. Табулирование функций от нескольких переменных 133
5.3.2. Вычисление кратных сумм и произведений 135
Вопросы для самоконтроля 138
Упражнения 138

ГЛАВА 6. ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА 142
6.1. Назначение операторов ввода-вывода 142
6.2. Ввод исходных данных. Операторы Read и ReadLn 143
6.2.1. Ввод числовых данных любых вещественных и целых типов 144
6.2.2. Ввод символьных и строковых данных 144
6.3. Вывод результатов. Операторы (процедуры) Write и WriteLn 147
6.4. Управление выводом 148
6.5. Представление результатов решения 149
6.5.1. Табулирование функции 149
6.5.2. Рисование фигуры 150
6.5.3. Построение объемного изображения 151
6.5.4. Вывод графика 152
Вопросы для самоконтроля 155
Упражнения 155

ГЛАВА 7. ОТЛАДКА ПРОГРАММ 159
7.1. Понятие об отладке программ 159
7.2. Причины и типы ошибок 160
7.3. Способы и средства отладки 161
7.4. Отладка программы в интегрированной среде 163
7.4.1. Пошаговая отладка программы 165
7.4.2. Выполнение программы до определенной точки 166
7.4.3. Перезапуск программы 169
7.4.4. Просмотр и модификация параметров программы 169
7.4.4.1. Окно Watches 169
7.4.4.2. Окно Evaluate and Modify 170
7.4.4.3. Окно Output 171
7.4.5. Работа с подпрограммами 172
Вопросы для самоконтроля 172
Упражнения 172

ГЛАВА 8. ОБРАБОТКА МАССИВОВ ДАННЫХ 174
8.1. Описание массива 174
8.2. Одномерные массивы 174
8.3. Двумерные массивы 179
8.4. Ввод-вывод массивов 180
8.5. Примеры программирования задач с использованием массивов 182
Вопросы для самоконтроля 189
Упражнения 189

ГЛАВА 9. МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ 192
9.1. Процедуры и функции 192
9.1.1. Описание процедур 192
9.1.2. Описание функций 194
9.1.3. Вызов процедур 195
9.1.4. Вызов функций 198
9.1.5. Блочный принцип организации программ 199
9.1.6. Пример составления программы 201
Вопросы для самоконтроля 204
Упражнения 204
9.2. Обмен данными между программными блоками. Параметры процедур и функций 207
9.2.1. Параметры-значения и параметры-переменные 207
9.2.2. Параметры-константы 209
9.2.3. Параметры открытого типа 210
9.2.4. Параметры без типа 211
9.2.5. Параметры-процедуры и параметры-функции. Процедурный тип 212
9.2.6. Пример составления программы 215
Вопросы для самоконтроля 218
Упражнения 219
9.3. Рекурсии 222
9.3.1. Понятие рекурсии 222
9.3.2. Техника построения рекурсивных алгоритмов 224
9.3.3. Формы рекурсий 228
9.3.3.1. Простая линейная рекурсия 228
9.3.3.2. Параллельная рекурсия 228
9.3.3.3. Взаимная рекурсия 229
9.3.3.4. Рекурсия более высокого порядка 231
9.3.4. Рекурсия и итерация 231
9.3.5. Пример составления программы 234
Вопросы для самоконтроля 237
Упражнения 237
9.4. Создание модулей 239
9.4.1. Структура модуля 239
9.4.1.1. Заголовок модуля и связь модулей друг с другом 239
9.4.1.2. Интерфейсная секция 240
9.4.1.3. Секция реализации 240
9.4.1.4. Секция инициализации 241
9.4.2. Использование модулей в основной программе 241
9.4.3. Компиляция модулей 244
9.4.4. Стандартные модули 244
9.4.5. Пример создания личной библиотеки 246
Вопросы для самоконтроля 251
Упражнения 251

ГЛАВА 10. СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ 252
10.1. Строковый тип данных 254
10.1.1. Базовый тип 254
10.1.2. Объявление строкового типа 256
10.1.3. Операции над строками 258
10.1.4. Стандартные процедуры и функции обработки строк 258
10.1.5. Ввод-вывод строк 261
10.1.6. ASCIIZ-строки 262
10.1.7. Пример составления программы 263
Вопросы для самоконтроля 266
Упражнения 266
10.2. Комбинированные типы данных 268
10.2.1. Описание записи 268
10.2.2. Селектор записи 269
10.2.3. Оператор присоединения 271
10.2.4. Вложенные записи 272
10.2.5. Записи с вариантами 274
10.2.6. Пример составления программы 275
Вопросы для самоконтроля 280
Упражнения 280
10.3. Создание и преобразование файлов. Файлы прямого доступа 283
10.3.1. Понятие файла 283
10.3.2. Типизированные файлы 283
10.3.2.1. Определение файлового типа 283
10.3.2.2. Процедуры и функции обработки файлов 285
10.3.2.3. Файлы последовательного доступа 287
10.3.3. Текстовые файлы 288
Упражнения 293
10.3.4. Файлы произвольного доступа 295
10.3.5. Нетипизированные файлы 298
Вопросы для самоконтроля 300
Упражнения 300
10.4. Организация данных в множества 302
10.4.1. Понятие и определение множества в теории множеств 302
10.4.2. Понятие и обозначение множества в Паскале 303
10.4.3. Определение множественного типа и переменных-множеств 304
10.4.4. Операции над множествами 305
10.4.5. Использование множеств в программах 306
Вопросы для самоконтроля 310
Упражнения 310

ГЛАВА 11. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ 313
11.1. Ссылочный тип данных 313
11.2. Операции над указателями 314
11.3. Динамические переменные 317
11.4. Работа со списковыми динамическими структурами 322
11.4.1. Создание пустого списка 322
11.4.2. Включение элемента в начало списка 322
11.4.3. Перемещение по списку и поиск заданного элемента 323
11.4.4. Вставка элемента между соседними элементами списка 324
11.4.5. Вставка элемента в конец списка 324
11.4.6. Удаление первого элемента списка 325
11.4.7. Удаление объекта, стоящего между соседними элементами списка 325
11.4.8. Удаление последнего элемента списка 326
11.4.9. Удаление всех элементов списка 326
11.4.10. Вывод на печать всех элементов списка 326
11.5. Пример составления программы 327
Вопросы для самоконтроля 332
Упражнения 332

ПРИЛОЖЕНИЕ 1. СООБЩЕНИЯ ОБ ОШИБКАХ В СРЕДЕ TURBO-PASCAL 336
П.1.1. Сообщения об ошибках периода компиляции 336
П.1.2. Ошибки периода выполнения программ в среде Turbo-Pascal 352
П.1.2.1. Ошибки DOS 352
П.1.2.2. Ошибки ввода-вывода 354
П.1.2.3. Критические ошибки 354
П.1.2.4. Фатальные ошибки. 355
П.1.2.5. Ошибки DPMI 358
П.1.2.5.1. Ошибки DPMIINST 358
П.1.2.5.2. Ошибки фиктивного модуля 358
П.1.2.5.3 Ошибки администратора этапа выполнения 359

ПРИЛОЖЕНИЕ 2. ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА ЯЗЫКА TURBO PASCAL 7.0 362

ПРИЛОЖЕНИЕ 3. ДИРЕКТИВЫ КОМПИЛЯТОРА 364
П.3.1. Информация для отладки 364
П.3.2. Информация о локальных идентификаторах 365
П.3.3. Проверка результата ввода-вывода 365
П.3.4. Проверка переполнения при математических операциях 366
П.3.5. Проверка границ/диапазонов 366
П.3.6. Проверка переполнения стека 366
П.3.7. Проверка параметров строкового типа 367

ПРИЛОЖЕНИЕ 4. СТАНДАРТНЫЕ МОДУЛИ 368
П.4.1. Модуль Crt 368
П.4.2. Модуль DOS 371
П.4.3. Модуль Graph 380
П.4.4. Модуль Overlay 399
П.4.5. Модуль Printer 400
П.4.6. Модуль Strings 401
П.4.7. Модуль System 404
П.4.8. Модуль WinDos 421

СПИСОК ЛИТЕРАТУРЫ 431