Игры с Чипом
Шрифт:
— Чип, — задумчиво сказал Сережа, — а вот скажи, ты что, никогда не устаешь? Никогда тебе не надоедает все правильно делать? Пошалить никогда не хочется?
— Как не хочется? Иногда еще как хочется пошалить и нарочно напутать, — ответил Чип. — Только ни один компьютер, ни один калькулятор еще ни разу нарочно никому не навредил. Нечаянно бывает, если что-нибудь сломается или если неправильную задачу дадут, а нарочно — никогда. Никогда! Ну ладно, мне пора
Сказки-программы
На следующий день, когда Сережа перед сном вызвал Чипа и они немножко поиграли в салочки-считалочки, Сережа попросил:
— Чип, а ты сказки какие-нибудь знаешь? Я так люблю сказки, даже совсем глупые, для малышей.
Чип задумался.
— Сказку? Нет, это работа для суперкомпьютера, вот тот может хоть сто тысяч сказок в секунду рассказывать.
— Да куда мне столько, мне и одной хватит. Ну, пожалуйста, Чипка, я очень тебя прошу. Попробуй, может, что-нибудь получится. Ты такой умный!
— Что ж, — Чип был явно польщен, — сказку, говоришь? Ладно, попробуем, только это будет не сказка, а сказка-программа. Ручка есть? Записывай.
И вот что продиктовал Чип.
РЕПКА. Сказка-программа для детей младшего и среднего школьного возраста, особенно для тех, кто занимается в кружке юных программистов.
— Что же это за сказка? — воскликнул Сережа в недоумении. — Чепуха какая-то! Ой, извини, Чип, я хотел сказать, что сказка очень интересная, но только непонятная.
— Что же тут непонятного? — проворчал Чип. — Все понятно. Делай, что написано маленькими буквами, и читай, что написано большими, и получится сказка. Вот написано N=1, значит, запомни, что сейчас N равно 1. Написано — прибавь 1 к N, значит, посмотри, чему сейчас N равно, и прибавь 1. Было 1 — станет 2, потом, когда второй раз вернешься к главе № 4, будет 2, а станет 3. А вместо слов «жилец № такой-то» читай его имя по списку жильцов. Значит, на этот раз уже не дед бабку, а бабка внучку позовет. Теперь понял?
— Ну-ка, ну-ка, — до Сережи наконец все дошло. — Ох, как здорово! Значит, пока до жильца № 6, то есть до мышки, очередь не дойдет, я все буду возвращаться и возвращаться, и все новые жильцы будут репку тянуть. А на мышке все кончится, так заранее и рассчитано. Послушай, Чип, а ведь так можно хоть сто жильцов взять, и сказка длиннее не станет, только вместо 6 надо будет всюду сто писать.
— Вот сейчас, — провозгласил Чип торжественно, — ты понял самое главное в программировании: цикл. Все идет по кругу, только жильцы прибавляются. Так зачем много раз одно и то же писать? Для этого и придуман цикл. Здесь цикл на мышке кончается, а бывает и бесконечный цикл, только его все компьютеры как огня боятся. Вот, например, сказка про попа и его собаку. Кстати, попробуй-ка напиши ее в виде программы.
— Сейчас попробую, — ответил Сережа. Он сел за стол и через пару минут написал:
ПОП И СОБАКА
— Ого, — улыбнулся Чип, — да ты, я вижу, прирожденный программист. Пожалел компьютер и вставил условие «если не надоело» в пятой главе. Сделал лазейку из бесконечного цикла. Значит, если надоело, то можно отдохнуть.
— Знаешь, Чип, только мне эта сказка совсем не нравится. Разве можно собаку мучить? Ну, наказал бы, а то сразу убивать. Давай ее спасем!
— Давай, — охотно согласился Чип. — Пусть тот, кто читает, сам выбирает для собаки наказание. Вот заменим главу № 3 на такую:
Теперь, перед тем, как читать сказку, надо выбрать наказание. Ну, скажем:
или
Кстати, такая программа, в которой можно что-то определять по желанию перед тем, как пользоваться, называется подпрограммой. А то, что надо определять, пишется в скобках после названия. Значит, мы сейчас написали сказку-подпрограмму