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

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

 

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

 

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

 

Че­ты­ре ко­ман­ды про­ве­ря­ют ис­тин­ность усло­вия от­сут­ствия стены у каж­дой

 

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

 

Цикл

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

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

КОНЕЦ ПОКА

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

 

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

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

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

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

КОНЕЦ ЕСЛИ

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

 

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

Если РОБОТ начнёт дви­же­ние в сто­ро­ну на­хо­дя­щей­ся рядом с ним стены, то он раз­ру­шит­ся, и про­грам­ма прервётся.

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

НА­ЧА­ЛО

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

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

ТО

вниз

КОНЕЦ ЕСЛИ

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

ТО

впра­во

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

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

Ре­ше­ние.

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

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

Про­ве­рив все клет­ки по вы­ве­ден­но­му нами пра­ви­лу дви­же­ния РО­БО­ТА вы­яс­ня­ем, что число кле­ток, удо­вле­тво­ря­ю­щих усло­вию за­да­чи, равно 12 (клет­ки А4-6, B4-6, C5-6, D5-6, E6, F6).

 

При­ме­ча­ние. Робот будет на каж­дом новом круге по­сле­до­ва­тель­но про­ве­рять оба усло­вия и вы­пол­нять их, и будет дви­гать­ся "ле­сен­кой" пока это воз­мож­но, а не про­сто спус­кать­ся вниз до пре­пят­ствия, а затем идти впра­во. В част­но­сти, начав дви­же­ние из клет­ки D4, робот будет пе­ре­ме­щать­ся по пути D4—D5—E5—F5.

За­ме­тим, что фраза «робот нач­нет дви­же­ние и оста­но­вит­ся» под­ра­зу­ме­ва­ет, что «робот нач­нет вы­пол­не­ние про­грам­мы и оста­но­вит­ся», при этом робот не обя­за­тель­но будет пе­ре­ме­щать­ся в дру­гую клет­ку.

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