Предисловие...................................................... 8
ЧАСТЬ 1. Введение................................................ И
Глава 1- Как расколоть орешек....................................... 11
1.1. Дружеский разговор.......................................... 12
1.2. Точная формулировка задачи.................................... 13
1.3. Разработка программы......................................... 13
1.4. Набросок решения............................................ 15
1.5. Основные принципы.......................................... 16
1.6. Задачи.................................................... 17
1.7. Литература для дополнительного чтения............................ 20
Глава 2. Ага! Алгоритмы........................................... 21
2.1. Три задачи.................................................. 21
2.2. Вездесущий двоичный поиск.................................... 22
2.3. Сипа примитивов................................,............ 24
2.4. Соберем все вместе (сортировка)................................. 26
2.5. Основные принципы.......................................... 27
2.6. Задачи.................................................... 29
2.7. Литература для вспомогательного чтения........................... 31
2.8. Реализация программы для анаграмм (дополнение).................... 31
Глава 3. Программы, работающие со структурами данных................... 34
3.1. Программа обработки результатов обследования...................... 34
3.2. Формирование писем.......................................... 37
3.3. Примеры................................................... 41
3.4. Большая по объему программа................................... 43
3.5. Основные принципы.............................>............ 45
3.6. Задачи.................................................... 46
3.7. Литература для дополнительного чтения............................ 49
Глава 4. Написание программ, не содержащих ошибок..................... 49
4.1. Двоичный поиск "бросает вызов"................................. 49
4.2. Написание программы......................................... 51
4.3. Разбор программы............................................ 54
4-4. Реализация программы........................................ 57
4.5. Основные принципы.......................................... 59
4.6. Зачем нужна верификация программ.............................. 60
5