Задания
Версия для печати и копирования в MS Word
Тип Д12 № 4686
i

Си­сте­ма ко­манд ис­пол­ни­те­ля РОБОТ, «жи­ву­ще­го» в пря­мо­уголь­ном ла­би­рин­те на клет­ча­той плос­ко­сти, со­сто­ит из 8 ко­манд. Че­ты­ре ко­ман­ды - это ко­ман­ды-при­ка­зы:

вверхвнизвлевовпра­во

При вы­пол­не­нии любой из этих ко­манд РОБОТ пе­ре­ме­ща­ет­ся на одну клет­ку со­от­вет­ствен­но: вверх \ChemForm\uparrow, вниз \ChemForm\downarrow, влево \ChemForm\leftarrow, впра­во \ChemFormarrow.

Че­ты­ре ко­ман­ды про­ве­ря­ют ис­тин­ность усло­вия от­сут­ствия стены у каж­дой сто­ро­ны той клет­ки, где на­хо­дит­ся РОБОТ:

свер­ху сво­бод­носнизу сво­бод­нослева сво­бод­носпра­ва сво­бод­но

Цикл

 

ПОКА усло­вие

по­сле­до­ва­тель­ность ко­манд

КОНЕЦ ПОКА

 

вы­пол­ня­ет­ся, пока усло­вие ис­тин­но

 

В кон­струк­ции

 

ЕСЛИ усло­вие

ТО ко­ман­да1

ИНАЧЕ ко­ман­да2

КОНЕЦ ЕСЛИ

 

вы­пол­ня­ет­ся ко­ман­да1 (если усло­вие ис­тин­но) или ко­ман­да2 (если усло­вие ложно).

 

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

Сколь­ко кле­ток ла­би­рин­та со­от­вет­ству­ют тре­бо­ва­нию, что, начав дви­же­ние в ней и вы­пол­нив пред­ло­жен­ную про­грам­му, РОБОТ уце­ле­ет и оста­но­вит­ся в за­кра­шен­ной клет­ке (клет­ка F6)?

 

НА­ЧА­ЛО

ПОКА снизу сво­бод­но ИЛИ спра­ва сво­бод­но

ЕСЛИ снизу сво­бод­но

ТО

вниз

КОНЕЦ ЕСЛИ

ЕСЛИ спра­ва сво­бод­но

ТО

впра­во

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Спрятать решение

Ре­ше­ние.

При дан­ной про­грам­ме РОБОТ по­сту­па­ет сле­ду­ю­щим об­ра­зом: спер­ва РОБОТ про­ве­ря­ет сво­бод­на ли клет­ка спра­ва или снизу от него, если это так, то РОБОТ пе­ре­хо­дит к пер­во­му усло­вию. По этому усло­вию, если у ниж­ней сто­ро­ны клет­ки нет стены, то он де­ла­ет шаг вниз, затем, если у пра­вой сто­ро­ны клет­ки нет стены де­ла­ет шаг впра­во.

Про­ана­ли­зи­ро­вав эту про­грам­мы при­хо­дим к вы­во­ду, что РОБОТ будет дви­гать­ся впра­во или вниз, пока у него есть такая воз­мож­ность. РОБОТ при дан­ной про­грам­ме ни­ко­гда не разобьётся.

Видно, что су­ще­ству­ет всего 2 места, в ко­то­рых робот может оста­но­вить­ся: нуж­ная нам 6F и 3F. Робот может прий­ти в клет­ку 3F толь­ко если он на­хо­дит­ся в об­ла­сти 1B:3F и клет­ках 1A и 2A, ко­ли­че­ство кле­ток в этой об­ла­сти равно 17. Общее ко­ли­че­ство кле­ток ла­би­рин­та равна 36, сле­до­ва­тель­но, 36 − 17 = 19.

 

Ответ: 19.

Раздел кодификатора ФИПИ: 1.6.2 Вы­чис­ли­мость. Эк­ви­ва­лент­ность ал­го­рит­ми­че­ских мо­де­лей
Ксения Михайлова 18.12.2013 08:19

Здрав­ствуй­те.

Мне ка­жет­ся, что робот может по­пасть в клет­ку F6 из кле­ток A1-A6 и B4-F6. В таком слу­чае в сумме их 21.

Петр Мурзин

Здрав­ствуй­те.

Из кле­ток А1 и А2 он попадёт в клет­ку F3. Для клет­ки А1: снизу сво­бод­но, Робот де­ла­ет один шаг вниз, далее про­ве­ря­ет сво­бод­но ли спра­ва. По­сколь­ку в клет­ке А2 спра­ва сво­бод­но, Робот вы­пол­ня­ет ко­ман­ду впра­во и ока­зы­ва­ет­ся в клет­ке В2. Далее цикл по­вто­ря­ет­ся. На ри­сун­ке при­ве­де­на тра­ек­то­рия дви­же­ния ро­бо­та после вы­пол­не­ния цикла пер­вый раз. Ана­ло­гич­но для клет­ки А2.