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

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

Так составилась задача под названием «Когда домой?» Вот алгоритм ее решения: из земли — в ведро, из ведра — в мешок, мешок — в машину. Повторять, ПОКА не нагрузим десять машин.

Узнаете? Правильно, это конструкция ЦИКЛА.

Надо сказать, что алгоритмы решения не только житейских, но и любых других задач сводятся к последовательности выполнения некоторых действий (программисты часто называют их «шагами»). А любая последовательность шагов может быть описана на языке вот этих самых только что перечисленных конструкций. Можно сказать, что любая программа, введенная в машину, представляет из себя не что иное, как алгоритм, записанный на языке таких конструкций. Поэтому-то машинные языки называются алгоритмическими.

А все ли задачи имеют алгоритмы для решения? Далеко не все.

Те, кто читал роман В. Гюго «Собор Парижской богоматери», помнят историю урода Квазимодо, который полюбил красавицу Эсмеральду. Понятно, что Квазимодо очень хотелось бы, чтобы и Эсмеральда полюбила его. Однако, увы, эта задача решения не имела. Какие бы действия ни предпринимал Квазимодо, в какой бы последовательности он ни выстраивал их, сердце красавицы (вообще говоря, весьма глупой барышни, лично я отказываюсь понимать, что в ней такого нашел Квазимодо) навсегда осталось закрытым для него.

Существуют такие задачи и в науке. В 1900 году в Париже состоялся Всемирный математический конгресс. Со своим докладом на нем выступил знаменитый математик Давид Гильберт. Для того, чтобы «проникнуть в предстоящие успехи нашей науки и тайны ее развития в начинающемся столетии», Гильберт выбрал двадцать три математические проблемы. С тех пор эти проблемы называются задачами Гильберта. До сегодняшнего дня они привлекают внимание всех математиков мира. Вот, например, как формулируется десятая проблема Гильберта. Дано: произвольное алгебраическое уравнение с целыми коэффициентами. Требуется: выяснить, существует ли у данного уравнения решение в целых числах? Оказывается, нет. Нет такого алгоритма, который позволил бы решить эту задачу. Это доказал советский математик Ю. В. Матиясевич.

А существуют ли задачи, которые имеют решения, но алгоритм которого невозможно записать? Странный вопрос, подумаете вы. Ведь если есть решение, то должен быть и алгоритм этого решения, то есть указание, каким способом решать данную задачу.

Но вот я спрашиваю: кто знает, как написать гениальный роман? Или хотя бы гениальное стихотворение? Ага, никто не знает! Тем не менее, гениальные произведения создавались и будут создаваться. Но алгоритм, или, что то же самое, рецепт, инструкцию для их написания создать невозможно. Итак, составление алгоритма — это первое, с чего начинается процесс программирования.

Второй шаг — запись алгоритма в виде программы. В одном из алгоритмических языков (их множество: фортран, алгол, пи-эл, бэйсик, паскаль…).

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

Кто может писать без ошибок? Никто. В том числе и программисты.

Введенную программу нужно отладить, то есть найти и устранить все ошибки.

Поэтому — четвертый шаг — отладка программы.

Вот, пожалуй, и все. Дальше начинается работа непосредственно самой машины.

Урок пятый

КТО ТАКИЕ КРАКЕЛЮРЫ?

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

Впрочем, что-то появилось в облике Казимира. С левого плеча у него свисало нечто белое, непонятное, вроде аксельбанта. Это нечто источало запах. Запах был не то чтобы слишком отвратительным, нет, но и ничего ласкающего обоняние в нем также не ощущалось.

— Кракелюры?!! — зарычал Казимир. — Кто такие кракелюры?!! Это — кракелюры!!!

Когда он успокоился, Петя узнал от него следующее. Население планеты Занге-Зонге-Зунге-Зунд было, в общем, миролюбивым. На 99 % — гуманисты. Половина оставшегося процента — философы. А полпоследнего процента — кракелюры. То есть жители герцогства Кракелюр. Сплошь — бандиты и агрессоры. И дубье-дубьем. Интеллекта — ноль. Духовная жизнь на точке замерзания. Ученые планеты установили, что перевоспитать кракелюров можно только одним способом — забросать герцогство солеными огурцами. Оказывается, соленые огурцы обладают, одним загадочным свойством: стоит даже самому буйному кракелюру не то чтобы съесть, а только взглянуть на соленый огурец, как сразу теряется вся его агрессия. Вместо того, чтобы пакостить прогрессивному человечеству, у них возникает желание выращивать хризантемы и играть на мандолине. Вот почему кракелюры не любят соленых огурцов. Они объявили войну соленым огурцам. Единственное место для соленых огурцов — это трансформаторные будки. Все нормальные люди рисуют на них череп с костями, а кракелюры — с соленым огурцом. На этом месте Петя перебил Великого Магистра.


Рекомендуем почитать
Животный алфавит

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


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

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


Дудочка и барабан

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


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

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


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

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


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

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