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

Ис­пол­ни­тель МА­ШИН­КА «живет» в огра­ни­чен­ном пря­мо­уголь­ном ла­би­рин­те на клет­ча­той плос­ко­сти, изоб­ра­жен­ном на ри­сун­ке. Серые клет­ки  — воз­ве­ден­ные стены, свет­лые  — сво­бод­ные клет­ки, по ко­то­рым МА­ШИН­КА может сво­бод­но пе­ре­дви­гать­ся. По краю поля ла­би­рин­та также стоит воз­ве­ден­ная стен­ка с на­не­сен­ны­ми но­ме­ра­ми и бук­ва­ми для иден­ти­фи­ка­ции кле­ток в ла­би­рин­те.

Си­сте­ма ко­манд ис­пол­ни­те­ля МА­ШИН­КА:

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

При вы­пол­не­нии любой из этих ко­манд МА­ШИН­КА пе­ре­ме­ща­ет­ся на одну клет­ку со­от­вет­ствен­но (по от­но­ше­нию к на­блю­да­те­лю): вверх ↑, вниз ↓, влево ←, впра­во →.

Че­ты­ре ко­ман­ды про­ве­ря­ют ис­тин­ность усло­вия от­сут­ствия стены у каж­дой сто­ро­ны той клет­ки, где на­хо­дит­ся МА­ШИН­КА (также по от­но­ше­нию к на­блю­да­те­лю):

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

Цикл

ПОКА <усло­вие> ко­ман­да

вы­пол­ня­ет­ся, пока усло­вие ис­тин­но, иначе про­ис­хо­дит пе­ре­ход на сле­ду­ю­щую стро­ку.

При по­пыт­ке пе­ре­дви­же­ния на любую серую клет­ку МА­ШИН­КА раз­би­ва­ет­ся о стен­ку.

Сколь­ко кле­ток при­ве­ден­но­го ла­би­рин­та со­от­вет­ству­ют тре­бо­ва­нию, что, стар­то­вав в ней и вы­пол­нив пред­ло­жен­ную ниже про­грам­му, МА­ШИН­КА не разо­бьет­ся?

 

НА­ЧА­ЛО

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

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

вверх

впра­во

КОНЕЦ

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

Ре­ше­ние.

Раз­бить­ся Ма­шин­ка может толь­ко при вы­пол­не­нии ко­манд "вверх" и "впра­во". Стар­то­вав из любой клет­ки из столб­ца А, ма­шин­ка разо­бьет­ся на по­след­нем шаге, ана­ло­гич­но для кле­ток С7, С8 и А8 − J8. Начав дви­же­ние из любой клет­ки с С1 по С5 ма­шин­ка не разо­бьет­ся, ана­ло­гич­но для кле­ток I1, I2 (см. рис.).

 

Ответ: 7.

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

Верно ли усло­вие? при дви­же­нии вверх или впра­во мы со­всем не про­ве­ря­ем на­ли­чия стены, сле­до­ва­тель­но все­гда раз­би­ва­ем­ся, разве нет?

Гость

Усло­вие верно, од­на­ко раз­би­ва­ем­ся мы не все­гда. Мы де­ла­ем ОДИН шаг вверх или впра­во.