Выбрать главу

И вот что продиктовал Чип.

РЕПКА. Сказка-программа для детей младшего и среднего школьного возраста, особенно для тех, кто занимается в кружке юных программистов.

Глава № 1. Жили-были:

жилец № 1 = Дедка,

жилец № 2 = Бабка,

жилец № 3 = Внучка,

жилец № 4 = Жучка,

жилец № 5 = Кошка,

жилец № 6 = Мышка;

Глава № 2. ПОСАДИЛ ДЕД РЕПКУ. ВЫРОСЛА РЕПКА БОЛЬШАЯ-ПРЕБОЛЬШАЯ. СТАЛ ДЕД ЕЕ ТЯНУТЬ. ТЯНЕТ-ПОТЯНЕТ, А ВЫТЯНУТЬ НЕ МОЖЕТ.

Глава № 3. Сейчас номер жильца N = 1, а потом он будет меняться.

Глава № 4. Вспомните, чему равняется N, и к этой цифре прибавьте 1.

Глава № 5. ПОЗВАЛ ЖИЛЕЦ N—1 ЖИЛЬЦА N (ПРЕДЫДУЩИЙ ЖИЛЕЦ СЛЕДУЮЩЕГО ЖИЛЬЦА).

Глава № 6. ТЯНУТ-ПОТЯНУТ.

Глава № 7. Если N = 6, то переходите к главе № 10, иначе читайте дальше.

Глава № 8. А ВЫТЯНУТЬ НЕ МОГУТ.

Глава № 9. Возвращайтесь к главе №4 и читайте следующие за ней главы.

Глава № 10. ВЫТЯНУЛИ РЕПКУ!

Глава № 11. Конец сказки.

— Что же это за сказка? — воскликнул Сережа в недоумении. — Чепуха какая-то! Ой, извини, Чип, я хотел сказать, что сказка очень интересная, но только непонятная.

— Что же тут непонятного? — проворчал Чип. — Все понятно. Делай, что написано маленькими буквами, и читай, что написано большими, и получится сказка. Вот написано N=1, значит, запомни, что сейчас N равно 1. Написано — прибавь 1 к N, значит, посмотри, чему сейчас N равно, и прибавь 1. Было 1 — станет 2, потом, когда второй раз вернешься к главе № 4, будет 2, а станет 3. А вместо слов «жилец № такой-то» читай его имя по списку жильцов. Значит, на этот раз уже не дед бабку, а бабка внучку позовет. Теперь понял?

— Ну-ка, ну-ка, — до Сережи наконец все дошло. — Ох, как здорово! Значит, пока до жильца № 6, то есть до мышки, очередь не дойдет, я все буду возвращаться и возвращаться, и все новые жильцы будут репку тянуть. А на мышке все кончится, так заранее и рассчитано. Послушай, Чип, а ведь так можно хоть сто жильцов взять, и сказка длиннее не станет, только вместо 6 надо будет всюду сто писать.

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

— Сейчас попробую, — ответил Сережа. Он сел за стол и через пару минут написал:

ПОП И СОБАКА

Глава № 1. У ПОПА БЫЛА СОБАКА, ОН ЕЕ ЛЮБИЛ.

Глава № 2. ОНА СЪЕЛА КУСОК МЯСА.

Глава № 3. ОН ЕЕ УБИЛ.  И В ЗЕМЛЮ ЗАКОПАЛ.

Глава № 4. И НАДПИСЬ НАПИСАЛ:

Глава № 5. Если не надоело, возвращайтесь к главе № 1, иначе отдыхайте.

Глава № 6. Конец. 

— Ого, — улыбнулся Чип, — да ты, я вижу, прирожденный программист. Пожалел компьютер и вставил условие «если не надоело» в пятой главе. Сделал лазейку из бесконечного цикла. Значит, если надоело, то можно отдохнуть.

— Знаешь, Чип, только мне эта сказка совсем не нравится. Разве можно собаку мучить? Ну, наказал бы, а то сразу убивать. Давай ее спасем!

— Давай, — охотно согласился Чип. — Пусть тот, кто читает, сам выбирает для собаки наказание. Вот заменим главу № 3 на такую:

«Глава № 3. ОН ЕЕ НАКАЗАЛ».

Теперь, перед тем, как читать сказку, надо выбрать наказание. Ну, скажем:

наказал = отругал и не дал мороженого,

или

наказал = отшлепал и запер на час в чулане.

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

ПОП И СОБАКА (наказал)

А когда будешь ее читать, можешь вставить, что хочешь, ну хоть

ПОП И СОБАКА (поцеловал)

Видишь, здесь вставлено то, что надо читать вместо слова «наказал».

Ладно, спокойной ночи, мне пора. Завтра еще поиграем, хорошо? 

ОТ РЕДАКЦИИ:

Дорогие ребята! Чип и вам дает задание: составить программу для сказки «Теремок». Самая лучшая и правильная программа будет напечатана в журнале. Ждем ваших писем.