Пять уроков Великого Магистра, или повесть о том, как Петя Бочкин изучал программирование - [7]

Шрифт
Интервал

— А на сладкое? — спросил кто-то.

— А на сладкое, братцы, тоже — жареная курица, — торжественно объявил Казимир.

— Ура! Ура! Ура! Ура! — восторженно прокричали матросы. По одному «ура» — на каждое блюдо. (Не знаю почему, но моряки любят жареных куриц).

— Обед готов. Кок-артиллерист — Кристина. Петя, составляй программу.

— А какой у нее набор стандартных команд? — спросил Петя.

— Исполнитель может выполнять три команды: «подойти к орудию», «зарядить орудие», «выстрелить». И добавляю: орудие у нас многозарядное.

В последней фразе Казимира слышалось какое-то тайное значение, но Петя не обратил на него внимание и начал диктовать:

— Значит, так, Кристина. Ты должна подойти к орудию, зарядить его и выстрелить, — он подумал и добавил: — и смотри у меня. Чтобы курица была как курица, а не черт знает что.

Через миг была отпечатана такая программа:

ПОДОЙТИ К ОРУДИЮ

ЗАРЯДИТЬ ОРУДИЕ

ВЫСТРЕЛИТЬ

КОНЕЦ

— Вводи программу, — приказал Казимир.

Петя сунул листок под поварский колпак Кристины и прихлопнул его сверху.

Кристина-Исполнитель понеслась к орудию, остановилась возле него и вдруг монотонно заговорила:

— Авария. Авария. Авария. Авария.

— В чем дело? — растерянно спросил Петя.

— Я же предупреждал, — сказал Казимир. — Кулинарно-артиллерийская установка у меня — многозарядная.

— Ну и что?

— Это я у тебя должен спросить: ну и что? Догадайся, о какой аварии говорит Исполнитель?

— Наверное, орудие уже заряжено?

— Совершенно верно. Сам же видел, как оно только что стреляло.

— Значит, Кристина сделала проверку и увидела, что в орудии остались заряды?

— Правильно.

— А какие проверки она умеет делать?

— Наконец-то! — воскликнул Казимир. — Наконец-то ты об этом спросил! Кристина-Исполнитель может проверять заряжено орудие или нет. Я отвечаю на твой вопрос!

— Вот оно что, — сказал Петя, — Значит, когда Кристина стала выполнять программу, то перед командой «зарядить орудие» она сделала проверку и обнаружила, что оно уже заряжено, и…

— И что?

— И значит, выполнять эту команду она не смогла. Поэтому перейти к следующей команде она тоже не смогла.

— Логично, — сказал Казимир. — Следовательно, в этом и есть причина аварии.

— Выходит, я неправильно составил программу?

— Выходит, так. Ты не использовал умения Кристины-Исполнителя делать проверку. Кристина, ко мне!

Кристина послушно приблизилась к Казимиру.

— Слушайте, Казимир, — сказал Петя, — а почему она вам подчиняется без всякой программы?

— Пусть только попробует не подчиниться. Я ведь, братец ты мой, — Великий Магистр. У меня жена — профессор… Впрочем, я об этом уже говорил. — Ну что, попробуешь еще раз составить программу?

— А как? — спросил Петя. — Я ведь не знаю, как составлять программы с проверками.

— Ты ей скажи по-человечески, чего ты хочешь, а на машинный язык твой приказ она переведет сама. Кстати, изложение программы «по-человечески» у программистов называется «спецификация».

— Ну, если по-человечески, то значит, так…

— Подожди, — перебил Казимир. — Представь себе, что в данный момент ты сам не знаешь, заряжено орудие или нет. Представил?

— Представил.

— Тогда командуй. И Петя начал:

— Кристина, ты должна подойти к орудию. Потом ты должна проверить, заряжено оно или нет. Допустим, что оно не заряжено. Тогда тебе нужно его зарядить и после этого выстрелить. А если оно уже заряжено, то во второй раз заряжать не нужно. Тогда ты должна просто выстрелить.

Петя сказал это, а Кристина тут же отстучала на машинке такой текст:


РАЗВЕТВЛЕНИЕ. УСЛОВНЫЙ ОПЕРАТОР

— Тебе здесь все понятно? — спросил Казимир.

— По правде говоря, не все.

— Тогда давай разберемся. В первой строчке программы — твоя первая команда. С ней, надеюсь, все ясно?

— Да. «Подойти к орудию». Стандартная команда.

— Дальше идет слово «если». В нем-то как раз и содержится команда для проверки. Если условие подтвердится, то Исполнитель должен выполнить команды, идущие после слова «то». В противном случае он выполняет команды, следующие после слова «иначе». Все команды, находящиеся между словами «если» и «конец условия», называются в программировании конструкцией разветвления. Может, догадаешься, почему она так называется?

— Наверное, все зависит от проверки — по какому пути пойдет выполнение команд, да?

— Совершенно верно. Действия Исполнителя имеют два варианта. А по какому варианту они пойдут, — это зависит от «если». И последнее. Слова «если… то… иначе…» в алгоритмических языках называются «условным оператором». Условный оператор — это единая конструкция, состоящая из трех этих слов. Очень часто программисты обозначают условный оператор по-английски: «if» «then»… «else».

— А мне еще одно не понятно. Для чего в программе рядом стоят слова «конец условия» и «конец»? Разве не хватило бы одного «конца»?

— Этого требуют правила грамматики алгоритмического языка. «Конец условия» говорит Исполнителю том, что в программе на этом месте заканчивается действие одного условного оператора и можно переходить к выполнению новых команд, если они есть. Ну, а слово «конец» в конце программы как бы говорит Исполнителю: «Молодчина! Ты хорошо поработал, дружище. Программа выполнена. Можешь отключиться и отдохнуть». Слово «конец в программах может быть написано и по-английски «end».


Рекомендуем почитать
Рима отвечает на вопросы

Книга рассказывает юному читателю о новостях науки и техники, помогает младшим школьникам в выборе профессии.


Животный алфавит

Весёлые квадратные зверюшки имеют свой собственный порядок: русский алфавит. Кто на букву Ю? – Юрок! А как выглядит квадратный юрок?


Как собрать кубик Рубика 3х3х3. Простой метод для начинающих

В этой книге вы найдете один из способов для начинающих, как можно быстро и очень легко собрать кубик Рубика. По моему опыту, множество людей способны собрать кубик с помощью метода, описанного в этой книге, за врем, менее 2 минут из любого его состояния запутанности. В рамках этой книги я постараюсь научить вас технике сборки кубика Рубика, которую я сам освоил еще в 1988 году, когда был ребенком. Этот метод довольно прост и позволяет научиться собирать кубик Рубика за 1,5 – 2 минуты без лишних тренировок, но с некоторым необходимым усердием.


Логопедические скороговорки и считалки

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Баллада Мефистофеля

О власти золота над людьми и жажде наживы, которые толкали народы к войне, к завоеванию новых стран и отчасти к распространению и накоплению знаний, как в алхимии…О поисках золотых месторождений, эпидемиях «золотой лихорадки» и насилии, грабежах и рабстве…О скрытой власти «жёлтого дьявола» в капиталистических странах и об изменившемся отношении советских людей к золоту…Обо всём этом и написана книга, стремящаяся показать всё то зло, которое приносит людям жажда золота, жажда наживы — всё, о чём поёт Мефистофель в своей балладе.


Оздоровительный массаж в домашних условиях : пособие для родителей

В пособии раскрывается значение массажа для здоровья ребенка, предлагаются комплексы массажа на первом году жизни, а также описываются виды профилактического и оздоровительного массажа при различных заболеваниях, отмечаются противопоказания для проведения массажа.