— Как видишь, — сказал Казимир, — имеется два варианта конструкции цикла. В одном из них используется оператор «пока (не выполнено какое-то условие) — повторять (какое-то действие)». А в другом варианте можно использовать оператор «повторять… (сколько-то) раз». Выбор конструкции зависит от того, каким будет исходный алгоритм.
— А что такое — исходный алгоритм? — спросил Петя.
— Об этом мы поговорим когда-нибудь после. А сейчас ты должен запомнить еще одно. Операторы цикла, как и условные операторы, можно записывать в программах не только по-русски, но и по-английски. Оператор «пока… повторять…» можно записать английскими словами «While…» «do…». А русское слово «раз» программисты часто заменяют словом «step» (шаг).[2]
НОВАЯ ПРОГРАММА ДЛЯ КУЛИНАРНО-АРТИЛЛЕРИЙСКОЙ УСТАНОВКИ
— Казимир, а мы будем кормить матросов или нет? — спросил Петя.
— Будем. Только ты для этого должен придумать один-единственный текст программы для Кристины.
_ И при этом использовать конструкцию цикла?
— Именно.
— Пожалуйста, — сказал Петя. И он напечатал:
— Можно и так, — сказал Казимир. — Будем считать, что Кристина-Исполнитель, кроме первой стандартной проверки, способна выполнять еще одну — считать выстрелы.
Кулинар-артиллерист Кристина, печатая шаг, подошла к Великому Магистру и отдала честь.
— Ну, Кристина, корми орлов, — сказал Казимир. — Петя, вводи программу.
Петя ввел программу, и через миг над побережьем загрохотала канонада. Жареные курицы одна за другой взлетали в бирюзовую высь, падали оттуда в заранее подставленные тарелки и немедленно исчезали в матросских желудках. Хрустели косточки.
ГИМН МАГИСТРУ
Когда с последней, двадцать четвертой, курицей было покончено, Казимир загрустил:
— Вот заботишься о них, заботишься, а все впустую… Ни сказок обо мне не расскажут, ни песен не споют…
— Казимир, давайте я про вас что-нибудь сочиню, — предложил Петя.
— Сам?
— Пусть мне Кристина поможет. Только превратите ее из кулинара в поэта.
— А что, это — идея, — проговорил Казимир. — Ты ей даешь, как говорится, социальный заказ, а она пишет для меня гимн. Воздвигает памятник, так сказать, нерукотворный. Кристина, ко мне! — Казимир ожил на глазах.
Кристина подошла и отдала честь. Сейчас на колпаке у нее вместо двух скрещенных мортир красовались два поднявшихся на дыбы крылатых коня. Два Пегаса. Это означало, что Кристина превратилась в стихотворца.
— Слушай приказ, — сказал Петя. — Нужно сочинить гимн Казимиру. Даю спецификацию. В первом куплете нужно сказать, что матросы испытывают к Великому Магистру глубокую любовь…
— Ну, любовь — это слишком, — сказал Казимир. — Лучше — нежность.
— Нежность так нежность, — сказал Петя. — И эта нежность глубока, как океан.
— Нет-нет, — снова возразил Казимир. — Океан — это нескромно. Так и зазнаться недолго. Лучше — как река. Какие у нас есть великие реки?
— Волга.
— Волга — это штамп.
— Ну, Ока.
— Так Волга или Ока? — спросила Кристина.
— На твое усмотрение, — сказал Петя. — И используй здесь конструкцию цикла. Повтори эту мысль не раз.
— Да-да, — добавил Казимир. — Ты уж постарайся, Кристина. Усиль впечатление.
— Дальше, — продолжал Петя. — Каждый раз, когда мы едим жареных куриц, мы вспоминаем о вас, Магистр, Ваше имя всегда будет жить в наших сердцах. Оно одно! И здесь — конструкция цикла.
— Как хорошо! — растроганно сказал Казимир. И наконец, если Великий Магистр и дальше будет так же заботиться о наших бытовых условиях, то и мы ответим ему тем же. И это тоже надо повторить несколько раз.
— Какие стихи! — произнес Казимир. — Какие стихи! Давай, Кристина, давай, не теряй времени. Сочиняй!
— А я и не теряю, — невозмутимо сказала Кристина. — Гимн уже готов. Осталось только разучить.
Она удалилась к матросам и раздала им листки с отпечатанным текстом.
БУНТ ЭКИПАЖА
Петя и Казимир присели на морском песке, матросы обступили их полукругом.
«Три-четыре», — сказала Кристина, и хор запел:
2
Только в воображении автора. Здесь мы имеем случай вранья. В программировании вообще НЕ бывает циклов ПОВТОРЯТЬ <…> раз, для этого используются переменные.(например FOR I:=1 TO 24 DO BEGIN <…> END; или FOR I:=24 DOWNTO 1 DO BEGIN <…> END; на Паскале, DO I=1 TO 24; <…> END; или DO I=24 TO 1 BY -1; <…> END; на PL1 и т. д. и т. п.) Поскольку автор знакомит читателя с переменными гораздо позже, ему пришлось выдумать циклы ПОВТОРЯТЬ <…> РАЗ.
Что касается слова «step», то оно обозначает шаг переменной и не имеет отношения к количеству повторений цикла, используется только в Алголе, в PL используется слово BY, в Си это реализовано по-своему, в Паскале шаг может быть только 1, если TO или -1, если DOWNTO.
Уж очень мне не понравился такой наглый обман маленьких читателей