5.5. Ошибки во время выполнения программы
5.5.1. Обработка ошибок в вызывающем модуле
5.5.2. Обработка ошибок в вызываемом модуле
5.5.3. Сообщения об ошибках
5.6. Исключения
5.6.1. Неправильные аргументы
5.6.2. Ошибки, связанные с диапазоном
5.6.3. Неправильный ввод
5.6.4. Суживающие преобразования
5.7. Логические ошибки
5.8. Оценка
5.9. Отладка
5.9.1. Практические советы по отладке
5.10. Пред- и постусловия
5.10.1. Постусловия
5.11. Тестирование
Глава 6. Создание программ
6.1. Задача
6.2. Размышления над задачей
6.2.1. Стадии разработки программы
6.2.2. Стратегия
6.3. Назад к калькулятору!
6.3.1. Первое приближение
6.3.2. Лексемы
6.3.3. Реализация лексем
6.3.4. Использование лексем
6.3.5. Назад к школьной доске!
6.4. Грамматики
6.4.1. Отступление: грамматика английского языка
6.4.2. Запись грамматики
6.5. Превращение грамматики в программу
6.5.1. Реализация грамматических правил
6.5.2. Выражения
6.5.2.1. Выражения: первая попытка
6.5.2.2. Выражения: вторая попытка
6.5.2.3. Выражения: третья попытка (удачная)
6.5.3. Термы
6.5.4. Первичные выражения
6.6. Испытание первой версии
6.7. Испытание второй версии
6.8. Потоки лексем
6.8.1. Реализация класса Token_stream
6.8.2. Считывание лексем
6.8.3. Считывание чисел
6.9. Структура программы
Глава 7. Завершение программы
7.1. Введение
7.2. Ввод и вывод
7.3. Обработка ошибок
7.4. Отрицательные числа
7.5. Остаток от деления: %
7.6. Приведение кода в порядок
7.6.1. Символические константы
7.6.2. Использование функций
7.6.3. Расположение кода
7.6.4. Комментарии
7.7. Исправление ошибок
7.8. Переменные
7.8.1. Переменные и определения
7.8.2. Использование имен
7.8.3. Предопределенные имена
7.8.4. Все?
Глава 8. Технические детали: функции и прочее
8.1. Технические детали
8.2. Объявления и определения
8.2.1. Виды объявлений
8.2.2. Объявления переменных и констант
8.2.3. Инициализация по умолчанию