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