Костёр 1989-04, страница 45

Костёр 1989-04, страница 45

отцепи (отцепляется

один, последний вагон, или, точнее, последний прицепленный вагон);

— прицепи (прицепляется один вагон);

переведи (перевод стрелки).

Последняя команда вызвала самое бурное обсуждение. Она изменяет направление движения. Если локомотив стоял так, как показано на рис. 1, и получил команду ВПЕРЕД, то в результате ее выполнения получится ситуация рис. 2. Если же в исходной ситуации он получил сначала команду ПЕРЕВЕДИ, а затем — команду ВПЕРЕД, то в результате будет положение, изображенное на рис. 3. Переводить стрелку можно, находясь в любом положении,— слева от тупика, справа от тупика и в тупике. Одной командой ПЕРЕВЕДИ можно перевести только одну стрелку, ближайшую на пути следования поезда.

Петя * начертил начальное положение состава (заметьте положение стрелок). Вот информация (рис. 4). А тем — конечное положение (рис. 5).

/ \

—.

шшшшт

РИС.1

X,ZZ

Г

—------

рис.2

/

zsz

рис.5

pnci

/ \

э

рис.5

Теперь осталось только записать алгоритм!

Но Машинист предложил: Пусть это сделают наши читатели! И вот им добрый со-чтобы не запутаться, пе

реводя стрелки в уме, постройте тупик и три стрелки из спичек, а вместо вагонов возьмите, например, шашки. Тогда каждую команду алгоритма можно будет выполнить на таком самодельном «компьютере».

Задание 1. Составьте алгоритм разворота из команд, записанных Петей.

— Ну и денек. Трудный и жаркий,— пожаловался Петя, когда друзья вернулись, наконец, в городок роботов.

— Пить хочешь?— сочувственно спросил Кукарача.

Угу!

Пойдем к моей доброй знакомой Переливашке. Она угостит нас отличным квасом.

Переливашка была дома. В нарядном платочке она хлопотала со своей многочисленной посудой. На столе в

посудой, комнате стояли три ведра: красное с надписью: «8 литров», зеленое пятилитровое и голубое емкостью в три литра. 8-литровое ведро было наполнено квасом до краев. Два других ведра — пустые.

— Угощайтесь,— предложила хозяйка.

Восьми литров Пете многовато,— сказал Кукарача.— Да и мне тоже. Давайте разольем из красного ведра квас так, чтобы и ему, и мне досталось поровну — по 4 литра.

Ну что ж, попробуйте!

Петя пробурчал недовольно:

— Легко сказать: «Попробуйте!» Как же это сделать, если на ведрах нет разметки объемов?

Но ведь теперь ты умеешь составлять разные алгоритмы. Вот и напиши алгоритм переливания из 8-литрового ведра в пятилитровое с помощью еще одного ведра — трехлитрового. Результатом такого переливания должно стать положение, при котором в красном и зеленом ведре окажется по четыре литра кваса. При этом разрешается либо полностью выливать квас из ведра (если есть для этого мес-

I

г

з

I

г

з

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

Кукарача пошутил:

Весьма ценный алгоритм для засушливых и пустынных районов!

Петя задумался:

— Предлагаю обозначения для команд алгоритма. Если надо переливать из красного ведра в зеленое, я это запишу:

кр. —зел. (305)

а из зеленого в голубое зел. —гол. (332)

В скобках справа написаны пояснения: сколько литров после выполнения команды остается в сосудах: красном (где исходно 8 литров, а после выполнения первой команды стало 3 литра), голубом (вначале 0 и осталось 0) и зеленом (стало 5). Эти пояснения, называемые комментариями, не важны для робота-исполнителя, но очень удобны для человека, который составляет или проверяет алгоритм.

Затем Петя быстро набросал алгоритм. Довольные Кук и Кукарача пошли, унося с собою два ведра,— красное и зеленое. В каждом по четыре литра вкусного кваса.

А в блокноте юнкора осталась запись для редакции «Костра»:

Задание 2. Составьте алгоритм для исполнителя Переливашки, который, как и Петя, сможет разделить объем в 8 литров на две равные части, имея неградуированные сосуды 8 литров, 5 литров и 3 литра.

Л. ДУВАНОВ, Е. ПЕРВИН Оформил В. Шаронов

39

РИС.6