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

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

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

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

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

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

Цикл

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

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

КОНЕЦ ПОКА

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

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

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

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

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

КОНЕЦ ЕСЛИ

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

 

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

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

 

НА­ЧА­ЛО

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

ПОКА спра­ва сво­бод­но

впра­во

КОНЕЦ ПОКА

вниз

КОНЕЦ ПОКА

КОНЕЦ

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

Ре­ше­ние.

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

Про­ана­ли­зи­ро­вав эту про­грам­му, при­хо­дим к вы­во­ду, что РОБОТ может раз­бить­ся. На­при­мер, стар­то­вав из кле­ток А6,B6,C6. Про­ве­рив все клет­ки по вы­ве­ден­но­му нами пра­ви­лу дви­же­ния РО­БО­ТА вы­яс­ня­ем, что число кле­ток, удо­вле­тво­ря­ю­щих усло­вию за­да­чи, равно 15 (вся пер­вая строч­ка, весь стол­бец F, клет­ки D2, E2, D4, D6, E4).

 

Ответ: 15.

 

При­ме­ча­ние.

За­ме­тим, что если РОБОТ стар­ту­ет из клет­ки F6, то усло­вие «снизу сво­бод­но или спра­ва сво­бод­но» не вы­пол­нит­ся, и цикл не нач­нет вы­пол­нять­ся, сле­до­ва­тель­но, РОБОТ за­кон­чит вы­пол­не­ние про­грам­мы, не начав дви­же­ние.

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

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

В за­да­нии не учи­та­но, что из D6 и E6 робот также может до­брать­ся до F6.

С ува­же­ни­ем!

Петр Мурзин

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

Стар­то­вав из кле­ток D6 и E6 Робот разобьётся:

 

ПОКАснизу сво­бод­но ИЛИ спра­ва сво­бод­но Усло­вие вы­пол­не­но, на­чи­на­ем вы­пол­нять цикл.

ПОКА спра­ва сво­бод­но Усло­вие вы­пол­не­но до клет­ки F6

впра­во

КОНЕЦ ПОКА

вниз Де­ла­ем один шаг вниз из клет­ки F6 и раз­би­ва­ем­ся.

КОНЕЦ ПОКА

КОНЕЦ