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