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