Пять уроков Великого Магистра, или повесть о том, как Петя Бочкин изучал программирование | страница 31
— А что же делать? — спросил Петя.
— Как что? — удивился Казимир. — Нужно делать то, что говорит нам карта. А она говорит: в западной части бухты мин гораздо меньше, чем в восточной. Значит, идти по западной части безопаснее. А тебя почему-то несет в восточную.
— Но ведь прокладывать курс по западной части я не могу, — сказал Петя.
— Почему?
— А разве вы не понимаете? У меня не хватает для этого команд.
— Хватает, — сказал Казимир. — Нужно, Петя, нужно, чтобы «Котангенс» выходил в море по западной части бухты.
— Казимир, вы меня прямо удивляете. Не может «Котангенс» идти по западной части. Для этого Исполнитель должен понимать команду «Лево руля». Но она же не входит в набор стандартных команд. Корабль может идти или на север, или на восток. Неужели это не понятно?
— Корабль может идти на запад, — упрямо сказал Казимир. — При этом Рулевой не обязан понимать команду «лево руля». Достаточно двух команд «право руля» и «полный вперед».
— Как это? — спросил Петя.
— Сдаешься? — спросил Казимир.
— Нет, — сказал Петя, — подумаю.
ОПИСАНИЕ НЕСТАНДАРТНЫХ КОМАНД
— Казимир, — сказал Петя. — А что если после команды «право руля» и «полный вперед» перед кораблем опять появится мина?
— Прекрасный вопрос! — воскликнул Великий Магистр. — В самом деле, что — тогда?
— Тогда стандартная проверка обнаружит эту мину, и, значит, рулевой снова выполнит команду «право руля»…
— И…
— …и корабль пойдет в обратную сторону!
— Следовательно, рулевой выполнит команду «развернуться», верно?
— Верно.
— А ведь эта команда не входит в набор стандартных команд, так?
— Так. Просто рулевой два раза выполнит стандартную команду «право руля».
— Выходит, для того, чтобы повернуть корабль влево, рулевой должен…
— …Три раза выполнить команду «право руля»! — радостно ответил Петя.
— Вот мы с тобой и подошли к одному из самых интересных разделов программирования — описанию нестандартных команд через стандартные, — объявил Казимир.
Он щелкнул пальцами, и машинка сама напечатала текст:
— Что здесь написано? — спросил Казимир.
— Команда «лево руля», — ответил Петя.
— Хорошо. Тогда составь программу выхода в открытое море вдоль западного побережья бухты.
Петя напечатал текст:
Казимир прочитал программу и сказал:
— Мы с тобой знаем, что программы могут состоять из трех программных конструкций. Скажи — каких?