Сережа мучился, мучился, а потом не выдержал и позвал на помощь Чипа.
— Ну что ж, я вижу, ты делаешь успехи, — похвалил его Чип, — надо только кое-что исправить. Вот как нужно сделать, чтобы он спел не про всех едоков вместе, а про каждого по отдельности:
Глава № 7. «ПО АМБАРАМ Я СКРЕБЕН, В ПЕЧКЕ ПЕЧЕН, НА ОКОШКЕ СТУЖЕН...»
Глава № 8. Начало второго цикла. Повторять для всех предыдущих едоков, начиная с деда.
Глава № 9. «Я ОТ ПРЕДЫДУЩЕГО ЕДОКА УШЕЛ...»
Глава № 10. Конец второго цикла.
Глава №11. «...А ОТ ТЕБЯ, ОЧЕРЕДНОЙ ЕДОК, И ПОДАВНО УЙДУ!»
Глава № 12. Конец цикла.
— Чем сказка кончается, — спросил Чип, — лиса его съест, так что ли?
— А это необязательно — ответил Сережа, — мы сочиним новую сказку, где никто колобка не съедает, а все вместе поют его песенку.
— Ну что ж, тогда напишем так:
Глава № 13. Если вам жалко колобка, то спойте с ним его песенку.
Глава № 14. Если вам его не жалко, то возьмите книжку и прочитайте, как его лиса съела. Нам про это писать не хочется.
Глава № 15. Конец.
— Вот и все, — Чип снял шапочку и раскланялся. — А вообще-то ты сложную сказку выбрал, с двойным циклом. Каждому новому едоку колобок поет про каждого предыдущего. Вот обрати внимание на главу № 9. Она повторяется 2 раза для зайца, 3 раза для волка, 4 раза для медведя и 5 раз для лисы — итого 14 раз. Помнишь, я тебе говорил, что цикл придумали, чтобы много раз одно и то же не писать. А двойной цикл еще больше места экономит. Представь себе, что было бы, если бы колобок сто разных зверей встретил, пока ему лиса не попалась. Наша программа почти не увеличится — надо только список едоков расширить, а обычная сказка про колобка, знаешь, как увеличится! Мало того, что нужно будет описать встречу с каждым из сотни зверей, нужно будет, чтобы колобок каждому зверю пропел про каждого предыдущего. На сказку, небось, и целого журнала не хватит. А мы с тобой на одну страничку уместились.
— Так что же, цикл только для экономии бумаги придуман? — спросил Сережа, которому немножко надоело хвастовство Чипа.
— Да что там бумага, — Чип махнул рукой, — не на бумаге же компьютерам программы пишут. У нас и магнитные ленты, и диски вроде грампластинок, и специальные кристаллики для памяти, и все равно памяти не хватает. Сейчас мы можем делать миллионы и даже миллиарды операций в секунду, и работаем по нескольку дней без остановок. Вот и представь, что было бы, если бы каждую операцию надо было отдельно описывать. А так написал цикл: «Сто миллиардов раз сложи 2 и 2», и пожалуйста! Компьютер работает, а ты отдыхаешь. Не пишешь ему сто миллиардов раз, чтобы он 2 и 2 сложил.
Ну, ладно, хватит на сегодня. В воскресенье и погулять надо.
Случай в квартире 130
— Во что мы сегодня будем играть? — нетерпеливо спросил Сережа, как только Чип выпрыгнул из коробки.
— Во что, во что... Будто я массовик-затейник — проворчал Чип, но по его хитрым глазкам Сережа понял, что Чип приготовил ему сюрприз и ломается только для вида.
— Ну, пожалуйста, Чип, миленький, я же знаю, что
ты все можешь придумать!
— Ну уж все... Ты в «Джеков дом» умеешь играть?
— Какой такой «Джеков дом»? Я такой игры не знаю.
— Неужели не слышал стишок: «Вот дом, который построил Джек. Вот пшеница, которая в темном амбаре хранится, в доме, который построил Джек...» И так далее. Все новые строчки прибавляются, а старые повторяются.
— А... слышал, но какая же тут игра?
— А вот какая: давай сочинять похожий стишок. Я говорю первый куплет, ты в ответ второй, я третий, ты четвертый и так далее, пока кто-то не сдастся. Ну, например, у вас дома кто строит?
— Не знаю, кажется, какой-то ЖЭК. [3]
— Ну, тогда начнем так: «Вот дом, который построил ЖЭК». Твоя очередь, Сережа.
— «Вот квартира сто тридцать,
В которой неладное что-то творится,
В доме, который построил ЖЭК», — сказал Сережа, немного подумав. — Твой ход, Чип.
— Э... э, назови-ка мне какое-нибудь имя девочки.
— Аня, — назвал Сережа имя своей лучшей подруги.
— Ну тогда: «Вот девочка Аня, которая спит у себя на диване,
В квартире и т.д.». Твоя очередь, Сережа. Так что же там неладное творится? Придумывай.
Сережа задумался.
— «Вот комната ванная, в которой море шумит разливанное,
Из крана, забытого девочкой Аней, и т.д.».
— Теперь назови мужское имя, — попросил Чип.
— Мужское? Пожалуйста: Никита.
— «Вот слесарь Никита по лестнице мокрой шагает сердито:
Спешит он в ту комнату ванную и т.д.», — не задумываясь, выпалил Чип.
— Ладно, сдаюсь! — со смехом сказал Сережа.
— А теперь, — сказал Чип вкрадчиво, — как ты, наверно, догадался, мы сделаем из этого стишка программу.
— Подумаешь, легкота! Мы такое уже делали.
— Вот как? Ну, попробуй напиши программу хотя бы для первых трех куплетов.
Сережа взялся за дело и довольно скоро понял, что тут что-то не то. В старых сказках-программах повторялись едоки или жильцы, то есть отдельные слова. А тут повторялись целые куплеты, да еще при этом менялись падежи слов внутри куплетов.
— Что, не тянется репка? — посочувствовал Чип. — А помнишь, мы с тобой про попа и собаку подпрограмму сочиняли? [4] Там ведь можно было выбрать любое слово: «поцеловал», «наказал» — и вставить его внутрь подпрограммы. Вот так и здесь надо. Например:
Подпрограмма «ДОМ».
ДОМ, КОТОРЫЙ ПОСТРОИЛ ЖЭК.
Возврат.
Выделенное слово ДОМ будет склоняться так, как тебе нужно: дом, доме, домом и так далее.
Подпрограмма «КВАРТИРА».