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

Ис­пол­ни­тель РОБОТ умеет пе­ре­ме­щать­ся по пря­мо­уголь­но­му ла­би­рин­ту, на­чер­чен­но­му на плос­ко­сти, раз­би­той на клет­ки. Между со­сед­ни­ми по сто­ро­нам клет­ка­ми может сто­ять стена. Клет­ка в ла­би­рин­те может быть чи­стая или за­кра­шен­ная. За­кра­шен­ные клет­ки на ри­сун­ке вы­де­ле­ны серым цве­том.

Си­сте­ма ко­манд ис­пол­ни­те­ля РОБОТ со­дер­жит во­семь ко­манд. Че­ты­ре ко­ман­ды – это ко­ман­ды пе­ре­ме­ще­ния:

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

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

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

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

Цикл

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

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

КОНЕЦ ПОКА

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

 

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

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

ТО ко­ман­да

КОНЕЦ ЕСЛИ

вы­пол­ня­ет­ся ко­ман­да толь­ко, если усло­вие ис­тин­но. В про­тив­ном слу­чае ни­че­го не про­ис­хо­дит.

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

 

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

 

НА­ЧА­ЛО

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

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

впра­во

КОНЕЦ ПОКА

ПОКА <снизу сво­бод­но>

вниз

КОНЕЦ ПОКА

КОНЕЦ ПОКА

КОНЕЦ

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

Ре­ше­ние.

Один из глав­ных приёмов в ре­ше­нии этой за­да­чи  — про­ве­рять клет­ки груп­па­ми а не по одной.

 

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

 

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

 

Про­ве­рив все клет­ки по вы­ве­ден­но­му нами пра­ви­лу дви­же­ния РО­БО­ТА вы­яс­ня­ем, что число кле­ток, удо­вле­тво­ря­ю­щих усло­вию за­да­чи, равно 21.

Источник: Ян­декс: Тре­ни­ро­воч­ная ра­бо­та ЕГЭ по ин­фор­ма­ти­ке. Ва­ри­ант 2
Раздел кодификатора ФИПИ: 1.6.2 Вы­чис­ли­мость. Эк­ви­ва­лент­ность ал­го­рит­ми­че­ских мо­де­лей