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