Файл: Задания 20. Короткий алгоритм в среде формального исполнителя или на языке программирования Вариант 20. 1.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 965

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



На бес­ко­неч­ном поле име­ет­ся стена, со­сто­я­щая из 5 по­сле­до­ва­тель­ных отрезков, рас­по­ло­жен­ных змейкой: вправо, вниз, влево, вниз, вправо, все от­рез­ки неизвестной длины. Робот на­хо­дит­ся в самой левой клет­ке непосредственно под верх­ней горизонтальной стеной. На ри­сун­ке указан один из воз­мож­ных способов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен буквой «Р»).

Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные ниже пер­во­го и левее вто­ро­го отрезков стены и левее четвёртого и ниже пя­то­го отрезков стены. Робот дол­жен закрасить толь­ко клетки, удо­вле­тво­ря­ю­щие данному условию. Например, для приведённого выше ри­сун­ка Робот дол­жен закрасить сле­ду­ю­щие клетки (см. рисунок).

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

 

 
Задания 20. Короткий алгоритм в среде формального исполнителя или на языке программирования

Вариант 34.

20.1  Исполнитель Робот умеет пе­ре­ме­щать­ся по лабиринту, на­чер­чен­но­му на плоскости, раз­би­той на клетки. Между со­сед­ни­ми (по сторонам) клет­ка­ми может сто­ять стена, через ко­то­рую Робот прой­ти не может. У Ро­бо­та есть де­вять команд. Че­ты­ре команды — это команды-приказы:

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

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

Ещё че­ты­ре команды — это ко­ман­ды проверки условий. Эти ко­ман­ды проверяют, сво­бо­ден ли путь для Ро­бо­та в каж­дом из четырёх воз­мож­ных направлений:

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

Эти ко­ман­ды можно ис­поль­зо­вать вместе с усло­ви­ем «если»
, име­ю­щим следующий вид:

если условие то

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

все

 Здесь условие — одна из ко­манд проверки условия. Последовательность команд — это одна или не­сколь­ко любых команд-приказов. Например, для пе­ре­дви­же­ния на одну клет­ку вправо, если спра­ва нет стенки, и за­кра­ши­ва­ния клетки можно ис­поль­зо­вать такой алгоритм:

если спра­ва свободно то

вправо

закрасить

все

 В одном усло­вии можно ис­поль­зо­вать несколько ко­манд проверки условий, при­ме­няя логические связ­ки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

вправо

все

 Для по­вто­ре­ния последовательности ко­манд можно ис­поль­зо­вать цикл «пока», име­ю­щий следующий вид:

нц пока условие

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

кц

 Например, для дви­же­ния вправо, пока это возможно, можно ис­поль­зо­вать следующий алгоритм:

нц пока спра­ва свободно

вправо

кц

 Выполните задание.




На бес­ко­неч­ном поле име­ет­ся стена, со­сто­я­щая из 5 по­сле­до­ва­тель­ных отрезков, рас­по­ло­жен­ных змейкой: вниз, вправо, вверх, вправо, вниз. Все от­рез­ки неизвестной длины. Робот на­хо­дит­ся в клетке, рас­по­ло­жен­ной слева от верх­не­го края пер­вой вертикальной стены. На ри­сун­ке указан один из воз­мож­ных способов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен буквой «Р»).

Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные левее пер­во­го и ниже вто­ро­го отрезков стены и ниже четвёртого и левее пя­то­го отрезков стены. Робот дол­жен закрасить толь­ко клетки, удо­вле­тво­ря­ю­щие данному условию. Например, для приведённого выше ри­сун­ка Робот дол­жен закрасить сле­ду­ю­щие клетки (см. рисунок).

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



 

 

 

Задания 20. Короткий алгоритм в среде формального исполнителя или на языке программирования

Вариант 35.

20.1 Исполнитель Робот умеет пе­ре­ме­щать­ся по лабиринту, на­чер­чен­но­му на плоскости, раз­би­той на клетки. Между со­сед­ни­ми (по сторонам) клет­ка­ми может сто­ять стена, через ко­то­рую Робот прой­ти не может. У Ро­бо­та есть де­вять команд. Че­ты­ре команды — это команды-приказы:

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

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

Ещё че­ты­ре команды — это ко­ман­ды про­вер­ки условий. Эти ко­ман­ды проверяют, сво­бо­ден ли путь для Ро­бо­та в каж­дом из четырёх воз­мож­ных направлений:

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

Эти ко­ман­ды можно ис­поль­зо­вать вме­сте с усло­ви­ем «если», име­ю­щим сле­ду­ю­щий вид:

если условие то

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

все

 Здесь условие — одна из ко­манд про­вер­ки условия. Последовательность команд — это одна или не­сколь­ко любых команд-приказов. Например, для пе­ре­дви­же­ния на одну клет­ку вправо, если спра­ва нет стенки, и за­кра­ши­ва­ния клет­ки можно ис­поль­зо­вать такой алгоритм:

если спра­ва сво­бод­но то

вправо

закрасить

все

 В одном усло­вии можно ис­поль­зо­вать не­сколь­ко ко­манд про­вер­ки условий, при­ме­няя ло­ги­че­ские связ­ки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

вправо

все

 Для по­вто­ре­ния по­сле­до­ва­тель­но­сти ко­манд можно ис­поль­зо­вать цикл «пока», име­ю­щий сле­ду­ю­щий вид:

нц пока условие

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

кц

 Например, для дви­же­ния вправо, пока это возможно, можно ис­поль­зо­вать сле­ду­ю­щий алгоритм:

нц пока спра­ва сво­бод­но

вправо

кц

 Выполните задание.





На бес­ко­неч­ном поле име­ет­ся лестница. Сна­ча­ла лест­ни­ца спус­ка­ет­ся вниз слева направо, потом под­ни­ма­ет­ся вверх также слева направо. После подъ­ема лест­ни­ца пе­ре­хо­дит в вер­ти­каль­ную стену. Вы­со­та каж­дой ступени — 1 клетка, ширина — 1 клетка. Ко­ли­че­ство ступенек, ве­ду­щих вверх, и ко­ли­че­ство ступенек, ве­ду­щих вниз, неизвестно. Между спус­ком и подъ­емом ши­ри­на площадки — 1 клетка. Робот на­хо­дит­ся в клетке, рас­по­ло­жен­ной в на­ча­ле спуска. На ри­сун­ке ука­зан один из воз­мож­ных спо­со­бов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен бук­вой «Р») .

Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные не­по­сред­ствен­но над лестницей, как по­ка­за­но на рисунке. Тре­бу­ет­ся за­кра­сить толь­ко клетки, удо­вле­тво­ря­ю­щие дан­но­му условию. Например, для приведённого выше ри­сун­ка Робот дол­жен за­кра­сить сле­ду­ю­щие клет­ки (см. рисунок).

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

 

 

Задания 20. Короткий алгоритм в среде формального исполнителя или на языке программирования

Вариант 36.

 20.1 Исполнитель Робот умеет пе­ре­ме­щать­ся по лабиринту, на­чер­чен­но­му на плоскости, раз­би­той на клетки. Между со­сед­ни­ми (по сторонам) клет­ка­ми может сто­ять стена, через ко­то­рую Робот прой­ти не может. У Ро­бо­та есть де­вять команд. Че­ты­ре команды — это команды-приказы:

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

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

Ещё че­ты­ре команды — это ко­ман­ды проверки условий. Эти ко­ман­ды проверяют, сво­бо­ден ли путь для Ро­бо­та в каж­дом из четырёх воз­мож­ных направлений:


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

Эти ко­ман­ды можно ис­поль­зо­вать вместе с усло­ви­ем «если», име­ю­щим следующий вид:

если условие то

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

все

 Здесь условие — одна из ко­манд проверки условия. Последовательность команд — это одна или не­сколь­ко любых команд-приказов. Например, для пе­ре­дви­же­ния на одну клет­ку вправо, если спра­ва нет стенки, и за­кра­ши­ва­ния клетки можно ис­поль­зо­вать такой алгоритм:

если спра­ва свободно то

вправо

закрасить

все

 В одном усло­вии можно ис­поль­зо­вать несколько ко­манд проверки условий, при­ме­няя логические связ­ки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

вправо

все

 Для по­вто­ре­ния последовательности ко­манд можно ис­поль­зо­вать цикл «пока», име­ю­щий следующий вид:

нц пока условие

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

кц

 Например, для дви­же­ния вправо, пока это возможно, можно ис­поль­зо­вать следующий алгоритм:

нц пока спра­ва свободно

вправо

кц

 Выполните задание.




На бес­ко­неч­ном поле име­ет­ся лестница. Сна­ча­ла лестница под­ни­ма­ет­ся вверх слева направо, потом опус­ка­ет­ся вниз также слева направо. Пра­вее спуска лест­ни­ца переходит в го­ри­зон­таль­ную стену. Вы­со­та каждой ступени — 1 клетка, ширина — 1 клетка. Ко­ли­че­ство ступенек, ве­ду­щих вверх, и ко­ли­че­ство ступенек, ве­ду­щих вниз, неизвестно. Между спус­ком и подъ­емом ширина площадки — 1 клетка. Робот на­хо­дит­ся в клетке, рас­по­ло­жен­ной в на­ча­ле спуска. На ри­сун­ке указан один из воз­мож­ных способов рас­по­ло­же­ния стен и Ро­бо­та (Робот обо­зна­чен буквой «Р») .

Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные непосредственно над лестницей. Робот дол­жен закрасить толь­ко клетки, удо­вле­тво­ря­ю­щие данному условию. Например, для приведённого выше ри­сун­ка Робот дол­жен закрасить сле­ду­ю­щие клетки (см. рисунок).

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