Предисловие
Часть первая. Основы построения алгоритмов
Глава 1. Обзор основных понятий
1.1. Процесс, алгоритм, язык
1.2. Компьютеры и программы
1.3. Внешняя память и файлы
1.4. Язык Паскаль, трансляция и системы программирования.
Глава 2. Начинаем изучать Паскаль
2.1. Лексика языка Паскаль и общий вид программы
2.2. Выражения с целыми и булевыми константами
2.3. Выражения и операторы
Глава 3. Написано одно, а делается
3.1. Не совсем действительные числа
3.2. Компьютер сам решит, что делать и чего не делать
3.3. Функция и ее вызовы
3.4. Процедуры, подпрограммы и параметры
3.5. Подзадачи, подпрограммы и библиотеки подпрограмм
Глава 4. Цикл "Пока" и его использование
4.1. Пока
4.2. Рекуррентные последовательности и соотношения
4.3. Числа простые и не только
Глава 5. Другие виды циклов-
5.1. До тех пор, пока не
5.2. "Для"
5.3. Цепные дроби и вычисление трансцендентных функций,
5.4. Метки и переходы
5.5. Чтение последовательностей
Глава 6. Тип символов и другие перечислимые типы
6.1. Тип символов
6.2. Перечислимые типы
6.3. Определение собственных перечислимых типов
6.4. Оператор выбора вариантов
Глава 7. Вернемся к определениям
7.1. Область действия определений и побочный эффект
7.2. Локальные и глобальные имена. Побочный эффект
7.3. Модуль — сборник определений
Глава 8.\'Подробнее о подпрограммах
8.1. Точка возврата
8.2. Локальная память подпрограммы
8.3. Подстановка аргументов на место параметров
8.4. Процесс выполнения вызова подпрограммы
8.5. Автоматическая память и программный стек
8.6. Сохранение переменных между вызовами подпрограммы
8.7. Подпрограммы как параметры
Глава 9. Рекурсивные определения и подпрограммы
9.1. Рекурсивные определения
9.2. Рекурсивные подпрограммы
?.3. "Ханойские башни"
9.4. "Индийский алгоритм" возведения в степень
Глава 10. Язык и метаязык
10.1. Язык: выражения и их семантика
10.2. Метаязык БНФ
10.3. Расширенные БНФ
10.4. Синтаксические диаграммы
Часть вторая. Организация данных
Глава 11. Представление чисел и других значений в компьютере
11.1. Позиционные системы счисления
11.2. Внутреннее представление данных стандартных типов
11.3. Целые и действительные типы языка Турбо Паскаль
Глава 12. Структуры
12.1. Структуры, они же записи
12.2. Примеры использования структур
Глава 13. Массивы
13.1. Одномерные массивы
13.2. Строки
13.3. Нестандартное представление чисел
13.4. Матрицы и многомерные массивы
Глава 14. Основы работы с файлами
14.1. Физические файлы и файловые переменные
14.2. Последовательная запись в типизированные файлы
14.3. Последовательное чтение типизированных файлов
14.4. Прямой доступ в системе Турбо Паскаль
Глава 15. Обработка текстов
15.1. Особенности организации текстов
15.2. Запись в текст
15.3. Чтение числовых констант из текста
15.4. Особенности чтения символов и строк из текста
15.5. Чтение текста со строками ограниченной длины
15.6. Посимвольное чтение текста
15.7. Использование строк для вывода в текст
Глава 16. Буферизация ввода-вывода
16.1. Идея буферизации
16.2. Буферизация текстов
16.3. Буферизация экрана и клавиатуры
16.4. Тип бестиповых файлов
Глава 17. Использование свободной памяти
17.1. Адреса и указатели
17.2. Свободная память
17.3. Линейные связанные списки
17.4. Списки как рекурсивные объекты
17.5. Большие массивы в свободной памяти
Часть третья. Несколько классических задач и алгоритмов
Глава 18. Поиск, сортировка и понятие сложности
18.1. Поиск по ключу в массиве
18.2. Пузырьковая сортировка
18.3. Понятие сложности алгоритма и задачи
18.4. Эффективные алгоритмы сортировки
18.5. Отсортируй, и многое увидишь
Глава 19. Знакомство с сортировкой файлов
19.1. Сбалансированное слияние
19.2. Выбор с замещением
19.3. Индексные файлы
Глава 20. Перебор вариантов
20.1. Задача о размещении ферзей
20.2. Дерево поиска и его обход
20.3. Метод ветвей и границ
20.4. Эвристические алгоритмы
20.5. Применение принципа оптимальности
Глава 21. Вычисление выражений
21.1. Задача вычисления выражений
21.2. Обратная польская запись и алгоритм ее построения.
21.3. Алгоритм вычисления выражения по его ОПЗ
21.4. Записи с вариантами
21.5. Программа вычисления выражений
21.6. Уточнение алгоритма построения ОПЗ
21.7. Уточнение алгоритма вычисления выражения
21.8. Множества в языке Паскаль
21.9. Чтение лексем выражения
Глава 22. Элементы синтаксического анализа
22.1. Формальные языки и их задание
22.2. Контекстно-свободные и 1А(1)-грамматики
22.3. Построение алгоритма 1А(1)-анализа
22.4. Анализ и вычисление скобочных выражений
Глава 23. Поиск образца в строке
23.1. Оценка количества сравнений
23.2. Метод Бойера-Мура (упрощенный вариант)
23.3. Метод Кнута-Морриса-Пратта
Ответы и указания к задачам
Приложение
Толковый словарь
Предметный указатель
Список литературы