Костёр 1989-12, страница 47шле Теперь нужно составить программу, выполняя которую, Таракан поднялся бы по лесенке на самый верх (рис. 1), 1 2345G783 40 8 10 Теперь нужно составить программу, выполняя которую, Таракан поднялся бы по лесенке на самый верх (рис. 1), 1 2345G783 40 8 10
объявил Кукарача Пете условие новой задачи. — Ему придется преодолеть семь ступеней, — заметил Кук, взглянув на поле. Я бы так записал решение: ЭТО ЛЕСЕНКА ПОВТОРИ 7 СТУПЕНЬ КОНЕЦ Но боюсь, что оно неверное. Почему ты так думаешь? Ведь в СКИ Таракана нет команды СТУПЕНЬ. Но в СКИ Таракана нет и команды ЛЕСЕНКА! — ЛЕСЕНКА — это не команда Таракану. Это имя программы, которую запомнил компьютер. — Но ведь точно так же можно запомнить и программу СТУПЕНЬ! Итересная мысль! Значит, ввожу в компьютер: ЭТО СТУПЕНЬ ВВЕРХ ВПРАВО КОНЕЦ Теперь давай разберемся, что произойдет, если набрать на клавишах слово ЛЕСЕНКА. Кому сейчас отдается команда? — Команда отдается компьютеру. По этой команде он должен передать роботу ко манды, записанные в его памяти под именем ЛЕСЕНКА. Компьютер находит в памяти запись: повтори 7 СТУПЕНЬ. А что происходит дальше? запись — указание передать Таракану семь раз команды, записанные в памяти под именем СТУПЕНЬ. Иными словами, компьютер будет передавать семь раз последовательность команд ВВЕРХ ВПРАВО. Давай попробуем? Введи с клавиатуры слово ЛЕСЕНКА! Петя набрал имя программы, и друзья увидели, как робот побежал по доске именно так, как они и рассчитывали (рис. 2). А что произойдет, — немного подумав, спросил Петя, — если не сделать в памяти компьютера запись с именем СТУПЕНЬ? Компьютер выдаст на экран сообщение об ошибке. Он напишет: «Не понимаю, что такое СТУПЕНЬ». — Еще вопрос. Можно ли программу ЛЕСЕНКА записать так: ЭТО ЛЕСЕНКА ПОВТОРИ 7 ВВЕРХ ВПРАВО КОНЕЦ По такой программе Таракан переместился бы сначала на 7 клеток вверх, а потом на одну клетку вправо. Компьютер полагает, что повторяться должна одна команда. Если необходимо повторить большее число команд, их записывают отдельно, а вслед за словом ПОВТОРИ вписывают имя, под которым сделана эта запись... Если вопросов нет, я устанавливаю кубики и исполнителя для новой задачи (рис. 3). Таракану необходимо прогнать с поля незваных гостей. * 23456 78Э ю i 8 10 i 8 10
объяснить Общий принцип: сначала решение планируется в целом, потом описываются детали. Я смотрю на доску и замечаю, что программа должна состоять из двух частей: первая часть подводит Таракана к незваным гостям — насекомым, вторая — заставляет его выполнять работу по сталкиванию их с поля. Это наблюдение рождает начало программы: ЭТО ГОСТИ ПОДВОД РАБОТА КОНЕЦ Теперь надо компьютеру состав и порядок действии ПОДВОД и РАБОТА. В какую клетку удобнее всего подводить Таракана, еще непонятно, поэтому сначала займусь описанием программы РАБОТА. Так как необходимо выбросить с поля трех насекомых, записываю: ЭТО РАБОТА ПОВТОРИ 3 ВЫБРОС КОНЕЦ Теперь выделяю на траектории движения Таракана три одинаковых участка (1, 2, 3 на рис. 3). Движение по каждой из них |