Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9(а,б) 2 вар.docx
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
217 Кб
Скачать
☆

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

 

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

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

 

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

 

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

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

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

все

 

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

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

вправо

закрасить

все

 

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

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

вправо

все

 

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

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

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

кц

 

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

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

вправо

кц

 

 

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

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

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

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

 

 

Вариант № 2877999

1. Задание 6 № 945

Исполнитель Чертёжник пе­ре­ме­ща­ет­ся на ко­ор­ди­нат­ной плоскости, остав­ляя след в виде линии. Чертёжник может вы­пол­нять ко­ман­ду Сместиться на (a, b) (где a, b – целые числа), пе­ре­ме­ща­ю­щую Чертёжника из точки с ко­ор­ди­на­та­ми (x, y), в точку с ко­ор­ди­на­та­ми (x+a, y+b). Если числа a, bположительные, зна­че­ние со­от­вет­ству­ю­щей ко­ор­ди­на­ты увеличивается, если от­ри­ца­тель­ные — уменьшается.

Например, если Чертёжник на­хо­дит­ся в точке с ко­ор­ди­на­та­ми (2, 4), то ко­ман­да Сместиться на (1, –5) пе­ре­ме­стит Чертёжника в точку (3, –1).

 

Запись

Повтори k раз

Команда1 Команда2 Команда3

Конец

означает, что по­сле­до­ва­тель­ность ко­манд Команда1 Команда2 Команда3 по­вто­рит­ся k раз.

Чертёжнику был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм:

Сместиться на (2, –7)

Повтори 6 раз

Сместиться на (0, 1) Сме­стить­ся на (–1, 1) Сме­стить­ся на (–2, 2)

Конец

Какую ко­ман­ду надо вы­пол­нить Чертёжнику, чтобы вер­нуть­ся в ис­ход­ную точку, из ко­то­рой он начал движение?

 

1) Сместиться на (–18, 24)

2) Сместиться на (18, –24)

3) Сместиться на (16, –17)

4) Сместиться на (–16, 17)