Костёр 1990-05, страница 44

Костёр 1990-05, страница 44

— Я рад,— сказал Машинист,— что ты понял цикл ПОКА. Для удобства я запишу последнюю нашу команду цикла в виде программы:

ЭТО ПРОВЕРКА ПОКА СТЫК ИСПРАВЕН? ВПЕРЕД КОНЕЦ

Первые испытания Обходчика я проведу на кольцевой дороге. Если все ее стыки исправны, как будет двигаться Обходчик по твоей команде?

— Думаю, что безостановочно. Дай-ка я наберу эту команду:

ПРОВЕРКА

По Петиной команде Обходчик помчался вперед. Через некоторое время, объехав дорогу по кольцу, он появился с другой стороны и, не останавливаясь, поехал дальше.

— Не очень удобная программа,— сказал Кук.— По этой программе Обходчик может остановиться, а мы даже об этом знать не будем. Надо, чтобы он нам сообщение послал.

— Это поправимо,— ответил Машинист и написал:

ЭТО ТЕЛЕГРАММА

ПРОВЕРКА

СООБЩИ «СТЫК НЕИСПРАВЕН» КОНЕЦ

Слова, взятые в кавычки после слова СООБЩИ, составляют текст сообщения, который Обходчик должен прислать на станцию. Программа ПРОВЕРКА кончает работу тогда, когда обнаруживает неисправный стык, тогда и нужно посылать телеграмму.

Петя спросил:

— А команда СООБЩИ может печатать только заранее заготовленные сообщения?

— Нет, у нее много возможностей! Например, она может

печатать одной строчкой несколько сообщений, перечисленных через запятую после слова СООБЩИ. С помощью этой команды можно напечатать число, хранимое в счетчике. Для этого надо написать СООБЩИ СЧЕТЧИК. Заметь: в отличие от текста, который надо брать в кавычки, в команде стоит неизвестная заранее величина, которая обозначена именем СЧЕТЧИК.

ЗАДАЧА 2. Чем отличаются выполнения двух команд

СООБЩИ «СЧЕТЧИК» и СООБЩИ СЧЕТЧИК

— Я хочу сделать твою программу ТЕЛЕГРАММА еще более удобной. Сообщение-то мы получим, а где неисправность — неизвестно. Придется отправляться в путь и искать, где стоит робот.

Петя взялся за дело и быстро написал:

ЭТО ИСПЫТАНИЕ СБРОСЬ

ПОКА СТЫК ИСПРАВЕН? ДВИЖЕНИЕ

СООБЩИ «НЕИСПРАВЕН СТЫК», СЧЕТЧИК КОНЕЦ

ЭТО ДВИЖЕНИЕ

ВПЕРЕД

ПРИБАВЬ КОНЕЦ

— Молодец! Теперь у компьютера, управляющего Обходчиком, неплохая программа, и наш исполнитель вскоре пришлет телеграмму. Или будет безостановочно ходить по кругу.

ЗАДАЧА 3. Объясните, зачем в самом начале программы ИСПЫТАНИЕ написана команда СБРОСЬ. Что произойдет без этой команды? Можно ли написать ее внутри программы ДВИЖЕНИЕ! Почему!

ЗАДАЧА 4. Какой вид будет иметь телеграмма, если к моменту остановки Обходчика в счетчике находится число 32!

— А чтобы использовать робота не только на кольцевой дороге, но и на любой железнодорожной ветке, которая заканчивается тупиком, надо, очевидно, использовать проверку ТУПИК?, которая служит Обходчику для распознавания конца ветки?

— Правильно. Кстати, если Обходчик дошел до тупика и не послал телеграмму о неисправности, это значит, что на про

веряемой железнодорожной ветке все в порядке. Тогда следует сообщить на станцию, что тупик достигнут или (что то же самое), что весь путь исправен. Вот как это можно сделать:

ЭТО КОНТРОЛЬ СБРОСЬ

ПОКА СТЫК ИСПРАВЕН? ПРОДВИЖЕНИЕ СООБЩИ «НЕИСПРАВЕН СТЫК», СЧЕТЧИК КОНЕЦ

ЭТО ПРОДВИЖЕНИЕ ЕСЛИ ТУПИК? ТО ОСТАНОВКА ИНАЧЕ ДВИЖЕНИЕ КОНЕЦ

ЭТО ОСТАНОВКА

СООБЩИ «ПУТЬ ИСПРАВЕН» СТОП КОНЕЦ

ЭТО ДВИЖЕНИЕ ВПЕРЕД ПРИБАВЬ КОНЕЦ

Машинист спросил:

— Надеюсь, Петя, ты больше не хочешь улучшать программу для управления Обходчиком?

И был удивлен неутомимостью Кука:

— Хочу! Обходчик ушел от нас и встал либо в тупике, либо на неисправном стыке. Теперь ты предлагаешь идти за ним пешком и приводить его домой? Нужно, чтобы он возвращался.

— Для этого Обходчик имеет нужную информацию: ведь на его счетчике отсчитан пройденный путь. Выполняя осмотр пути, Обходчик шел вперед, а теперь он должен двигаться назад. Заранее неизвестно, сколько шагов назад надо сделать, но известно, что это число хранится в счетчике. Значит, движение назад можно выполнить циклом ПОВТОРИ СЧЕТЧИК НАЗАД. Вместо привычного числа после ПОВТОРИ стоит имя-обозначение этого числа.

— Ну, теперь-то задача ясна. Ее можно и не решать, а предложить читателям «Костра».

ЗАДАЧА 5.

Напишите программы, по которым Обходчик, обнаруживая неисправный стык или дойдя до тупика, присылает нужные сообщения, а затем возвращается на станцию.

А. ДУВАНОВ Ю. ПЕРВИН