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

Ис­пол­ни­тель Т1000 «живёт» на бес­ко­неч­ной в обе сто­ро­ны ленте, раз­де­лен­ной на клет­ки (одна из кле­ток яв­ля­ет­ся те­ку­щей, в ней на­хо­дит­ся ис­пол­ни­тель). Си­сте­ма ко­манд Т1000 вклю­ча­ет сле­ду­ю­щие:

 

влево − пе­ре­ме­стить­ся на одну клет­ку влево;

впра­во − пе­ре­ме­стить­ся на одну клет­ку впра­во;

за­пи­сать X − за­пи­сать в те­ку­щую клет­ку число Х.

если X ко­ман­да − вы­пол­нить ко­ман­ду, если в те­ку­щей клет­ке за­пи­са­но число Х.

пока X ко­ман­да − вы­пол­нять ко­ман­ду, пока в те­ку­щей клет­ке за­пи­са­но число X.

 

Ко­ман­да опре­де­ля­ет­ся как одна из ко­манд, ука­зан­ных выше, либо как по­сле­до­ва­тель­ность ко­манд. При за­пи­си про­грам­мы такие вло­жен­ные ко­ман­ды за­клю­че­ны в фи­гур­ные скоб­ки.

 

Дана про­грам­ма:

пока 1 влево

пока 0 влево

влево

пока 1

{впра­во

за­пи­сать 0}

пока 0 впра­во

влево

за­пи­сать 1

влево

пока 0 влево

влево

 

Она вы­пол­ня­ет­ся на­чи­ная с край­ней пра­вой клет­ки с чис­лом 1 в сле­ду­ю­щей на­чаль­ной кон­фи­гу­ра­ции (все осталь­ные ячей­ки бес­ко­неч­ной ленты за­пол­не­ны ну­ля­ми и не по­ка­за­ны на схеме):

 

Как будет вы­гля­деть лента после оста­нов­ки про­грам­мы?

 

1)  010001111110

2)  010100111110

3)  000111110010

4)  010110011110

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

Ре­ше­ние.

Ис­пол­ни­тель на­хо­дит­ся в край­ней пра­вой клет­ке с чис­лом 1. На­чи­на­ем вы­пол­не­ние про­грам­мы. Пока в клет­ке в ко­то­рой на­хо­дит­ся Т1000 за­пи­са­но число 1 ис­пол­ни­тель пе­ре­дви­га­ет­ся влево. Как толь­ко в ячей­ке ленты ис­пол­ни­тель встре­тит 0 он начнёт вы­пол­нять сле­ду­ю­щую ко­ман­ду "пока 0 влево". Про­дол­жая вы­пол­нять ко­ман­ды и дойдя до конца, уви­дим, что лента в конце будет вы­гля­деть так: 010110011110.

 

Ответ: 4.

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