120
Часть II. Подготовка к олимпиаде
ВВЕДЕНИЕ
Вторая часть книги “Олимпиады по информатике” посвящена вопросам, связанным с подготов-
кой учащихся к соревнованиям.
Готовя участника к олимпиаде, необходимо помнить о триединстве основных компонент:
- тренировка логического мышления;
- работа над техникой реализации;
- психологическая подготовка.
Я считаю, что основное при подготовке ребят - необходимость выработки у них логически-
структурного мышления: умение выбрать из условия задачи главное; разбить основную задачу на
подзадачи; определить, к какому классу можно их отнести; выбрать наилучший метод (алгоритм)
решения.
Данная книга не является учебником по алгоритмизации в полном понимании, вопросы техниче-
ской подготовки рассматриваются лишь в той мере, в какой они могут быть использованы при реше-
нии задач, обычно присутствующих на олимпиадах по информатике. Ряд методов и алгоритмов ре-
шения задач рассмотрены менее подробно, другие - более. Это, в основном, связано с анализом работ
наших ребят, трудностей, с которыми они сталкиваются, и ошибок, которые они допускают при ре-
шении олимпиадных задач.
В процессе психологической подготовки необходимо настроить участника на желание и умение
максимально реализовать свои потенциальные возможности (заметьте - не победить, а макси-
мально реализовать) в экстремальных условиях, которые предъявляет олимпиада.
2.1 Техническая подготовка
2.1.1 О структурном программировании
В чем преимущества структурного подхода к программированию?
1. Можно ожидать, что логика работы программы будет более понятна программирующему.
2. Если Вы пока не знаете, как реализовать какой-либо модуль, всегда можно поставить “умозри-
тельную” машину, которая ничего не делает.
3. Возможность “работать” (программировать) с отдельным модулем.
4. Независимость “умозрительных” машин одного уровня позволяет независимо модифициро-
вать блоки программы без затрагивания других блоков. Как отмечал Э. Дейкстра: “…модификации
программ могут быть теперь представлены заменой одной (умозрительной) машины другой подхо-
дящей машиной”.
5. Проведение отладки структурированных программ намного легче, чем не структурированных.
6. Можно ожидать, что это оградит нас от ненужной работы. Если нет заварки, наша программа
просто завершит работу.
7. “Структурный подход” позволяет проводить целенаправленную подготовку к участию в
олимпиадах по информатике. Если модули независимы друг от друга, то можно заранее подготовить
машины нижнего уровня, например, блок сортировки, блок поиска в глубину, поиска в ширину, блок
обработки входной информации. Отработав их в подготовительный период, на олимпиаде, исходя из
задачи, использовать в том или ином сочетании.
Небольшое замечание. Часто, сравнивая языки программирования, говорят, что Паскаль –
структурированный язык. А, например, Бейсик – нет. Что один язык лучше другого. Хочется напом-
нить таким спорщикам следующее: каждый язык программирования наиболее удобен для опре-