Сережа очень любил рыться в старых журналах: «Вокруг света», «Наука и жизнь», «Техника — молодежи»... Там иногда попадались такие интересные факты! Однажды в среду, придя домой после уроков, Сережа вызвал Чипа и они стали вдвоем выискивать интересные сведения.
— Знаешь, Сережа, оказывается, красные чернила бесследно смываются пятипроцентным раствором обыкновенной циклопентанпергидрофенантреновой кислоты. Очень полезная информация для школьника.
— Это что! А вот тут написано, что аборигены острова Мадагаскар умеют жестикулировать носом. Это умение передается по наследству генетическим путем.
— А здесь написано, что некоторые металлы способны направлять и усиливать человеческое биополе. Так, положенный за щеку пятак позволяет передавать и принимать мысли на расстояние до пяти метров. С третьей парты до доски достанет!
— А тут сказано, что в странах Юго-Восточной Азии существует древняя традиция сушить фунчозу на ушах у доверчивых слушателей первого апреля!
Они расхохотались. Оказывается, каждый из них помнил, что сегодня первое апреля,и только и ждал удобного момента, чтобы разыграть другого.
Когда Чип и Сережа вдоволь посмеялись, Сережа спросил:
— Знаешь,Чип, а я все-таки в прошлый раз не совсем понял, зачем ты в программах пишешь «начало цикла», «конец цикла», разве и так неясно?
— Вот, чтобы ты больше не задавал таких вопросов, я прочту тебе одно стихотворение поэта, пожелавшего остаться неизвестным, о лентяе, тоже пожелавшем остаться неизвестным. А ты мне скажи, сколько в этом стихотворении циклов.
КАЮЩИЙСЯ ЛЕНТЯЙ
Каждый год он на лень свою злится:
Через год перестану лениться!
Каждый месяц себе он клянется:
Через месяц работа начнется!
Каждый день он себя заклинает:
Завтра новую жизнь начинаю!
Каждый час говорит он, вздыхая:
Все, последний часок отдыхаю!
Исправляется с каждой минутой,
Но работа стоит почему-то.
— Ну что ж, — спокойно сказал Сережа, делая вид, что не замечает ехидных намеков Чипа, — в этом стихотворении пять циклов: по годам, по месяцам, по дням, по часам и по минутам. Да, если не знать, что из чего состоит и что за чем следует, то можно и запутаться. А как бы ты написал это стихотворение в виде программы?
Чип только этого и ждал. Вот как он написал.
Начало 1-го цикла:
ПОВТОРЯЙ каждый год, ПОКА лентяй не исправится:
«Каждый год он на лень свою злится:
Через год перестану лениться!»
Начало 2-го цикла:
ПОВТОРЯЙ каждый месяц:
«Каждый месяц себе он клянется:
Через месяц работа начнется!»
Начало 3-го цикла:
ПОВТОРЯЙ каждый день:
«Каждый день он себя заклинает:
Завтра новую жизнь начинаю!»
Начало 4-го цикла:
ПОВТОРЯЙ каждый час:
«Каждый час говорит он, вздыхая:
Все, последний часок отдыхаю!»
Начало 5-го цикла:
ПОВТОРЯЙ каждую минуту:
«Исправляется с каждой минутой,
Но работа стоит почему-то».
Конец 5-го цикла;
Конец 4-го цикла;
Конец 3-го цикла;
Конец 2-го цикла;
Конец 1-го цикла.
— Ну как? — гордо спросил Чип. — Теперь все ясно, не то, что раньше!
— Ты, пожалуйста, не сердись, но только мне как раз наоборот раньше все было понятно, а вот теперь... Где начало, где конец, какие-то циклы, ей-богу, без циклов было проще!
— Это для вас, людей, так проще, а для компьютеров без циклов нельзя писать — собьется компьютер. В том и состоит искусство программирования: писать так, чтобы компьютер мог работать без ошибок. Человеческий язык для компьютера полон загадок.
— Вот, смотри, — продолжил Чип, — начало и конец каждого цикла написаны на одном уровне — сразу видно, какой цикл кончился, а какой нет.
— Все равно непонятно, — упорствовал Сережа, — давай разберем, как мы делали раньше, кусочек твоей стихотворной программы. Может, тогда я пойму.
— Давай, — согласился Чип. — Начнем с главного цикла. Мы можем сначала написать только его.
Начало 1-го цикла.
ПОВТОРЯЙ каждый год, ПОКА лентяй не исправится:
«Каждый год он на лень свою злится:
Через год перестану лениться!»
Конец 1-го цикла.
— Надеюсь, все ясно? В начале года, скажем, 1 января, лентяй вспоминает про свою лень, злится и обещает через год исправиться. Потом на весь год про это забывает. Поскольку так от лени не избавишься, он организует второй цикл и вписывает его внутрь первого.
Начало 1-го цикла.
ПОВТОРЯЙ каждый год, ПОКА лентяй не исправится:
«Каждый год он на лень свою злится:
Через год перестану лениться!»
Начало 2-го цикла.
ПОВТОРЯЙ каждый месяц:
«Каждый месяц себе он клянется:
Через месяц работа начнется!»
Конец 2-го цикла.
Конец 1-го цикла.
— Теперь он каждое 1 января повторяет первую пару строчек и, кроме того, каждый месяц, скажем, каждое второе число, повторяет вторую строчку.
— А, понял, — подхватил Сережа, — это тоже не помогло, тогда он вписывает внутрь 2-го цикла третий, по дням. Будет еще каждый день перед сном обещать завтра начать новую жизнь. Здорово получается: пару строчек напишешь, а 365 раз будешь программу выполнять. Только все равно это не поможет, я пробовал. Чип, а что ты посоветуешь, как бороться с ленью? Правда, без шуток.
— Я знаю только один способ бороться с ленью: если ты начнешь делать свое дело хорошо, оно станет тебе интересно и ты будешь его делать с охотой. А если ты работаешь из-под палки, только чтобы отделаться, дело так и останется скучным и тебе будет лень. Сделай свою работу интересной, и лень пройдет. Вот мы с тобой играем, и нам не лень составлять программы, а если бы мы учились по учебнику, мы бы тоже, наверное, ленились.
ОТ РЕДАКЦИИ:
Сегодня Чип и Сережа предлагают вам забыть про лень и заняться таким делом. Представьте, когда часы бьют, из них выглядывают раз в час петух, а раз в час кукушка. А каждые 12 часов они появляются вместе и хвалят друг друга. Как составить программу для таких электронных часов?
Простой вариант программы: одна кукушка каждый час поет и каждые 12 часов танцует.
Лучшие программы мы напечатаем. Ждем ваших писем. На конверте укажите: «Кукушка и петух».