Страница 23 из 27
— На это тебе не хватило бы даже летних каникул, — засмеялся Чип. — Только на конкурс «Турнир» пришло 602 письма. Кстати, вот задача. Наверняка есть ребята, которые прислали нам по нескольку писем — ответы на различные конкурсы. Как нам найти их ответы в этой груде?
— Разве это задача, — сразу ответил Сережа. — надо рассортировать конверты с фамилиями авторов по алфавиту. А алгоритм быстрой сортировки мы уже знаем, помнишь историю про принца и Золушку?
— Помню, а вот какую программу ты бы написал для нашей задачи?
Сережа немного подумал и написал такую программу:
1. Взять мешок, о котором М писем.
2. Рассортировано 0 писем.
3. Повторяй, пока рассортировано меньше, чем М писем.
4. Возьми из мешка письмо.
5. Вставь в список новое письмо.
6. Конец.
Подпрограмма: <i>«</i>Вставь в список<i>»</i> (новое письмо)
1. Верхний = 0
2. Если рассортировано 0 писем, перейди к строке 7.
3. Нижний = длине списка.
4. Средний = (Верхний + Нижний): 2
5. Если фамилия > Среднего, то
Нижний = Среднему,
иначе
Верхний = Среднему.
6. Если Верхний > Нижнего + 1, переходи к 4-й строке.
7. Вставить фамилию после Верхнего.
8. Длина списка увеличилась на единицу.
9. Возврат.
— Все правильно, — сказал Чип, проверив программу, — только ты ведь не знаешь, сколько в мешке писем. Поэтому лучше будет, если ты напишешь третью строчку программы так:
3. Повторяй пока в мешке есть письма:
И еще хорошо бы вставить в блок между четвертой и пятой строчками строку: «Прочитать письмо». Кстати, именно таким способом я и воспользовался, когда разбирал нашу почту.
Очень много откликов пришло на задание найти алгоритм Евклида. Правильные ответы прислали: Сергей АЛЕКСЕЕНКО из Хабаровска; Дима АПУХТИН, Челябинск; Люда БРЫНЬ, г Мена; Лена ГЕРАСИМОВА, Одесса; Саша ЗАВОРИН, п. Победа; Олеся КОСТЕНКО, Севастополь; Оля МАЗЕПА, Волжский; Лена МАЙОРОВА, Килок; Саша МАРТЫНЕНКО, Киев; Лена МОСТОЛЬСКАЯ, Москва; Наташа МУСИЕНКО, Похвистнев; Света НЕРЫДАЕВА, Ярославль; Туля ПУЗАТОВА, д. Б. Когульбаева; Таня РАМЕНСКАЯ, с. Рогачево; Аня САМАРОВА. Москва; Алена ТАРАСОВА, Ижевск; Оксана ТЮНИКОВА, Омск; Оля УСАЧЕВА, Донецк; Нина ШЕВЧЕНКО, Иркутск; Юра ЮРЬЕВ, Москва.
Гораздо сложнее оказалось помочь электронному мальчику с пальчик выйти из болота. С этой задачей из 90 претендентов лучше всех справились Алеша АЛЕКСЕЕВ, Уфа; Витя РЫЖАКОВ, Томск и Дима СОСУЛЯКИН, Новокузнецк. Программы которые они предложили, очень похожи и выглядят примерно так.
1. Возьми три веревки, привяжи к колышку.
2. Трем братьям отойти в разные стороны.
3. Выбрать верхнего.
4. Всем переместиться к выбранному брату и забить там колышек.
5. Если не вышли из болота — возврат к 1.
Подпрограмма: «Выбрать верхнего».
1. Посмотреть на веревки.
2. Если одна выше остальных — выбрать этого брата.
3. Если все на одном уровне — жди утра.
— По-моему, — сказал Сережа, — все трое допустили небольшую ошибку. Чтобы выйти из трясины, нам надо найти не брата, стоящего выше всех, а место, которое выше, чем то, где забит колышек. Возможно, что одна веревка будет выше других, но все братья будут находиться ниже колышка. Тогда мы не только не выйдем из трясины, но, наоборот, завязнем еще глубже. Программу «Выбери верхнего» я бы написал так:
1. Посмотри на веревки.
2. Если есть хоть одна, идущая вверх, то
выбери самую верхнюю,
иначе
жди утра
3. Возврат.
— Правильно, Сережа, я бы даже усилил твое утверждение и написал: «Если есть хоть одна, идущая не вниз» — зачем ждать утра, если есть возможность испробовать еще один вариант, оставаясь на том же уровне.
— Посмотри, Чип, вот сюжеты электронных игр, целых семьдесят писем.
— С этим заданием лучше всех справились Никита ЛИТВИНЕНКО, Краснокаменск и Ира РЯБЫХ, п. Ларба. Пятиклассник Никита предложил игру «Леопольд, выходи!» и даже нарисовал картинку. Сюжет игры такой: две мыши, которыми управляют с помощью клавиш компьютера, дразнят кота Леопольда и прыгают через кнопки, лежащие на дороге. Если мышка приземлится на кнопку, раздается громко «Ай!» (современные компьютеры уже умеют разговаривать), и игрок получает штрафное очко. Дорога с кнопками может двигаться быстрее или медленнее. Поскольку мышек две и они прыгают независимо друг от друга, управлять ими будет не просто, такая игра потребует хорошей координации движений и быстрой реакции.
— Чип, а помнишь того сердитого читателя из Свалявы? Он писал, что мы даем слишком простые задачи. Ему предложили более трудное задание и попросили написать на конверте: «Чип, это я».
— Конечно, помню. Письма из Свалявы мы, правда, пока не получили, зато вон лежат семь писем из разных уголков страны с надписью «Чип, это я». Не знаю, что хотели сказать их авторы, но, к сожалению, в этих письмах нет ни слова о сложном задании, просто ответы на конкурс «Турнир». Кстати, с этим конкурсом справились многие ребята. Правильные ответы прислали Дима АНТОНОВ, Пермь. Ярослав ВЕРБЕ, Киев; Паша ДАНИЛОВ, Загорск; Юра ДУКАЧ, Экибастуз; Саша ЕЛЕСЕЕВ, Ростов-на-Дону; Алексей ЕРОХИН, Марганец; Дима ЗАЙЦЕВ, Апатиты; Кирилл ИЛЬИН, Ленинград; Саша КОНЕВ, Курчатов; Сергей КОРОВЯКОВСКИЙ, Мурманск; Роман КАЛИНА, Оренбург; Таня КРЕСТОВСКИХ, Ухта; Лена МАТАШКОВА, Витебск; Слава НИКОЛАЕВ, с Новомихайловское; Игорь ПЕРМИНОВ. г. Ступино; Алеша МАЛЬКОВ, г. Шимановск; Ольга Л., с. Вихоревка; С. РАССТРИГИН, Рязань; Юра ПЕТРАШОВ, Тольятти; Женя СЕРГУНОВ, Юрга; Дима СУТОРИН, Пермь; Яна СУХОРУКОВА, Красноярск; Оля СИЛИНА, Юрьев-Польский; Ольга ШЕПТАЛИНА, Балашиха; Эльвина ЮНУСОВА, Уфа.
Много программ на бейсике, программ для микрокалькуляторов прислали наши читатели на задание «Турнир». Больше всех постарался Станислав Расстригин: он прислал программы на трех языках — бейсике, алголе и рапире. Игорь Перминов из Ступина на базе нашего задания придумал сюжет электронной игры «Турнир».
— Чип, а давай предложим тем читателям, кто занимается в кружках программирования, усложнять для себя наши задания. Пусть записывают программы на машинных языках или придумывают на основе этих программ электронные игры.