— Не знаю, кажется, какой-то ЖЭК. [3]
— Ну, тогда начнем так: «Вот дом, который построил ЖЭК». Твоя очередь, Сережа.
— «Вот квартира сто тридцать,
В которой неладное что-то творится,
В доме, который построил ЖЭК», — сказал Сережа, немного подумав. — Твой ход, Чип.
— Э... э, назови-ка мне какое-нибудь имя девочки.
— Аня, — назвал Сережа имя своей лучшей подруги.
— Ну тогда: «Вот девочка Аня, которая спит у себя на диване,
В квартире и т.д.». Твоя очередь, Сережа. Так что же там неладное творится? Придумывай.
Сережа задумался.
— «Вот комната ванная, в которой море шумит разливанное,
Из крана, забытого девочкой Аней, и т.д.».
— Теперь назови мужское имя, — попросил Чип.
— Мужское? Пожалуйста: Никита.
— «Вот слесарь Никита по лестнице мокрой шагает сердито:
Спешит он в ту комнату ванную и т.д.», — не задумываясь, выпалил Чип.
— Ладно, сдаюсь! — со смехом сказал Сережа.
— А теперь, — сказал Чип вкрадчиво, — как ты, наверно, догадался, мы сделаем из этого стишка программу.
— Подумаешь, легкота! Мы такое уже делали.
— Вот как? Ну, попробуй напиши программу хотя бы для первых трех куплетов.
Сережа взялся за дело и довольно скоро понял, что тут что-то не то. В старых сказках-программах повторялись едоки или жильцы, то есть отдельные слова. А тут повторялись целые куплеты, да еще при этом менялись падежи слов внутри куплетов.
— Что, не тянется репка? — посочувствовал Чип. — А помнишь, мы с тобой про попа и собаку подпрограмму сочиняли? [4] Там ведь можно было выбрать любое слово: «поцеловал», «наказал» — и вставить его внутрь подпрограммы. Вот так и здесь надо. Например:
Подпрограмма «ДОМ».
<b>ДОМ</b>, КОТОРЫЙ ПОСТРОИЛ ЖЭК.
Возврат.
Выделенное слово ДОМ будет склоняться так, как тебе нужно: дом, доме, домом и так далее.
Подпрограмма «КВАРТИРА».
<b>КВАРТИРА</b> СТО ТРИДЦАТЬ, В КОТОРОЙ НЕЛАДНОЕ ЧТО-ТО ТВОРИТСЯ, В «ДОМЕ»...
Возврат.
— Видишь, — продолжал Чип, — тут в кавычках написано слово «ДОМЕ». Это значит, что вместо него надо вставить подпрограмму «ДОМ», то есть написать: «в доме, который построил ЖЭК». Ну, а дальше так же.
Подпрограмма «ДЕВОЧКА АНЯ».
<b>ДЕВОЧКА АНЯ</b>, КОТОРАЯ СПИТ У СЕБЯ НА ДИВАНЕ, В «КВАРТИРЕ»...
Возврат.
На этот раз вызывается подпрограмма «КВАРТИРА», то есть: «квартире 130, в которой неладное что-то творится в «доме». Обрати внимание, что подпрограмма «КВАРТИРА», в свою очередь, вызывает подпрограмму «ДОМ». Понятно?
— Вроде да, — сказал Сережа неуверенно, только я не понимаю, зачем все время пишется слово «возврат» в конце подпрограммы.
— А как же, это значит, что надо вернуться к тому месту, откуда вызывалась подпрограмма, и продолжать дальше. Например, после того, как закончится подпрограмма «ДОМ», надо продолжать подпрограмму «КВАРТИРА», а когда она закончится, надо продолжать подпрограмму «ДЕВОЧКА АНЯ». Ну как, сможешь дальше сам?
— Попробую. — ответил Сережа и скоро написал:
Подпрограмма «КОМНАТА ВАННАЯ».
<b>КОМНАТА ВАННАЯ</b>, В КОТОРОЙ МОРЕ ШУМИТ РАЗЛИВАННОЕ,
ИЗ КРАНА, ЗАБЫТОГО «ДЕВОЧКОЙ АНЕЙ»...
Возврат.
— Правильно, — похвалил Чип. — А вот, наконец, последняя подпрограмма.
Подпрограмма «СЛЕСАРЬ НИКИТА».
<b>СЛЕСАРЬ НИКИТА</b> ПО ЛЕСТНИЦЕ МОКРОЙ ШАГАЕТ СЕРДИТО:
СПЕШИТ ОН В ТУ «КОМНАТУ ВАННУЮ»...
Возврат.
— А все стихотворение можно записать так, — сказал Чип:
Программа «СЛУЧАЙ В КВАРТИРЕ 130».
Вот «ДОМ»; вот «КВАРТИРА»; вот «ДЕВОЧКА АНЯ»; вот «КОМНАТА ВАННАЯ»; вот «СЛЕСАРЬ НИКИТА».
Конец.
Можешь проверить, расписав каждую подпрограмму.
Новая игра
Многие мальчики и девочки спрашивают в письмах Чипа: не знает ли он игры, в которую можно поиграть на самом простом калькуляторе?
Знает Чип такие игры. Вот одна из них:
«ЧИСЛОВЫЕ ПРЫГАЛКИ»
На калькуляторе набирают любое число меньше 100. Двое играющих «ходят» по очереди: если число четное, то его в один ход делят пополам. Если нечетное, то другой игрок, тоже за один ход, сначала число умножает на 3, а дальше по своему усмотрению или отнимает, или прибавляет единицу. Выигрывает тот, кто в ответе получает единицу.
Вот как протекала одна партия между Сережей и его подругой Аней.
Аня набрала на калькуляторе число 5.
Сережа: 5x3-1=14.
Аня: 14:2=7.
Сережа: 7x3-1=20
Аня: 20:2=10.
Сережа: 10:2=5.
Аня: 5x3+1=16.
Сережа: 16:2=8.
Аня: 8:2=4.
Сережа: 4:2=2.
Аня: 2:2=1.
Сережа проиграл, ему осталась единица.
Счет в этой игре можно вести и по-другому: суммировать числа, полученные в результате хода каждого игрока. Выиграет тот, кто наберет больше очков к концу игры, когда в ответе получится единица.
Аня: 5+7+10+16+...=43.
Сережа: 14+20+5+8+...=49.
А так счет 43:49 в пользу Сережи.
ОТ РЕДАКЦИИ:
Ребята, Чип дает вам задание: подумать, какие ходы могут привести вас к победе. Подсказываем, у каждого варианта игры — свои секреты. Кто догадается, напишите нам.
Барон Мюнхгаузен и урок физкультуры
— Ты над чем так смеешься? — спросил Чип. Сережа зачитывался «Бароном Мюнхгаузеном», а Чип прогуливался по столу, поглядывая по сторонам. Работы для него не было, и он томился от безделья.
— Да вот, представляешь, барон Мюнхгаузен сам себя из лужи вытянул! За волосы!
— И что же тут смешного? По-моему, ничего особенного.
— Уж будто твои программы могут сами себя за волосы тащить!
— А что! — азартно крикнул Чип. — Вот спорим, что я напишу программу, которая сама себя из лужи вытаскивает? Спорим?
— Ну, спорим, — усмехнулся Сережа.
— Это будет программа
«МЮНХГАУЗЕН».
«ЕСЛИ МЮНХГАУЗЕН В ЛУЖЕ, ТО ОН ДОЛЖЕН ТЯНУТЬ СЕБЯ ЗА ВОЛОСЫ».
А «ТЯНУТЬ СЕБЯ ЗА ВОЛОСЫ» — это подпрограмма.
Подпрограмма «ТЯНУТЬ СЕБЯ ЗА ВОЛОСЫ»:
«НАГРЕТЬ СВОИМИ ДВИЖЕНИЯМИ ЛУЖУ НА ОДНУ ТЫСЯЧНУЮ ГРАДУСА. ЕСЛИ ЛУЖА НЕ ВЫСОХЛА, СНОВА ТЯНУТЬ СЕБЯ ЗА ВОЛОСЫ».
3
Тут Сережа ошибся. ЖЭК — жилищно-эксплуатационная контора — не строит, а эксплуатирует дома.
4
Подпрограмма — это кусочек программы, который можно вставлять в любое место. При этом можно что-то менять в этом кусочке, надо только точно указать, что и как. В этом отношении подпрограмма напоминает платье-полуфабрикат, которое подгоняют по фигуре. Подпрограмму можно вставлять и в другую подпрограмму, а ту — еще в одну, как матрешки. Если вам все равно непонятно, не смущайтесь, прочтите дальше, поиграйте с этим стишком, и вам постепенно все станет ясно.