Создаем стартовую обстановку




Задание 20. Исполнитель

 

Начало задания общее для всех вариантов.

 

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Ниже приведено описание Робота. У Робота есть четыре команды перемещения:

Вверх

Вниз

Влево

Вправо

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

Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. Если Робот получит команду передвижения через стену, то он разрушится.

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

Сверху свободно

Снизу свободно

Слева свободно

Справа свободно

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

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

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

Все

«Последовательность команд» – это одна или несколько любых команд, выполняемых Роботом. Например, для передвижения на одну клетку вправо, если справа нет стенки, можно использовать такой алгоритм:

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

Вправо

Все

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

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

Вправо

Все

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

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

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

кц

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

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

Вправо

кц

Также у Робота есть команда закрасить, закрашивающая клетку, в которой Робот находится в настоящий момент.

 

Создаем стартовую обстановку

 

В первую очередь необходимо создать начальную обстановку — нарисовать стены и поместить Робота в начальное положение, согласно условию задачи.

 

Выбираем: Редактировать стартовую обстановку Робота

 

Рисуем стены и устанавливаем робота согласно условию задачи

Сохраним созданную обстановку на компьютер (например, на рабочий стол)

Сохраняем обстановку

 

Загружаем созданную стартовую обстановку

Загружаем созданную стартовую обстановку

F9 – выполнение программы

 

1. На бесконечном поле имеется вертикальная стена. Длина стены неизвестна. От верхнего конца стены вправо отходит горизонтальная стена также неизвестной длины. Робот находится в клетке, расположенной слева от нижнего края вертикальной стены.

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

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

закрасить следующие клетки (см. рисунок):

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

 

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

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

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

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

Алгоритм напишите в текстовом редакторе и сохраните в текстовом файле.

 

 

3. На бесконечном поле имеются две горизонтальная стены одинаковой длины,расположенные точно одна над другой. Длина стен неизвестна. Расстояниемежду стенами неизвестно. Робот находится над нижней стеной в клетке,расположенной у её левого края.

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

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

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

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

 

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

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

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

 

 

5. На бесконечном поле имеются 4 стены, расположенные в форме прямоугольника. Длины вертикальных и горизонтальных стен неизвестны. Робот находится в клетке, расположенной в левом верхнем углу прямоугольника.

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

 

6. На бесконечном поле имеется стена. Стена состоит из трёх последовательных отрезков: вправо, вниз, вправо, все отрезки неизвестной длины. Робот находится в клетке, расположенной непосредственно сверху левого конца первого отрезка.

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

 

 

7. Робот находится в верхней клетке узкого вертикального коридора. Ширина коридора – одна клетка, длина коридора может быть произвольной.

Напишите для Робота алгоритм, закрашивающий все клетки внутри коридора и возвращающий Робота в исходную позицию.

 

 

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

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

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

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

 

 

9. На бесконечном поле есть горизонтальная и вертикальная стены. Левый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход неизвестной длины. Робот находится в клетке, расположенной непосредственно над горизонтальной стеной у её правого конца.

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

 

                 
                 
                 
                 
                 
                 
                 
                 
              Р  
                 
                 

 

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

 

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

Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера проходов внутри стен.

Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

 

10. На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной непосредственно над горизонтальной стеной у её левого конца.

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

 

 

11. На бесконечном поле есть горизонтальная и вертикальная стены. Правый конец горизонтальной стены соединён с верхним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной непосредственно под горизонтальной стеной у её левого конца.

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

 

 

12. На бесконечном поле есть горизонтальная и вертикальная стены. Левый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В вертикальной стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной непосредственно над горизонтальной стеной у её правого конца.

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

 

 

Loading...

 

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

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

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

 

 

14. На бесконечном поле имеется лестница. Сначала лестница слева направо спускается вниз, затем поднимается вверх. Высота каждой ступени – одна клетка, ширина – две клетки. Робот находится на первой ступеньке лестницы,в левой клетке. Количество ступеней, ведущих вниз, и количество ступеней, ведущих вверх, неизвестно.

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

 

 

15. На бесконечном поле имеется лестница. Сначала лестница спускается вниз справа налево, затем спускается вниз слева направо. Высота каждой ступени – одна клетка, ширина – две клетки. Робот находится справа от верхней ступени лестницы. Количество ступенек, ведущих влево, и количество ступенек, ведущих вправо, неизвестно.

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

 

 


ОТВЕТЫ:

 

1: использоватьРобот алг нач. нцпокане справа свободно..закрасить.. вверх. кц. закрасить. вправо. нцпокане снизу свободно.. закрасить.. вправо. кц кон  
2: использоватьРобот алг нач. нцпокане снизу свободно..закрасить.. вправо. кц. вниз. влево. нцпокане сверху свободно.. закрасить.. влево. кц кон  
3: использоватьРобот алг нач. нцпокане снизу свободно..закрасить.. вправо. кц. влево. нцпокасверху свободно.. вверх. кц. нцпокане сверху свободно.. закрасить.. влево. кц кон
4: использоватьРобот алг нач. нцпокане слева свободно..вверх. кц. вниз. нцпокасправа свободно.. закрасить.. вправо. кц. закрасить. нцпокане справа свободно.. вниз. кц кон
5: использоватьРобот алг нач. нцпокасправа свободно..вправо. кц. нцпокаснизу свободно.. закрасить.. вниз. кц. нцпокаслева свободно.. закрасить.. влево. кц. закрасить кон  
6: использоватьРобот алг нач. нцпокане (снизу свободно)..вправо. кц. нцпокаснизу свободно.. вниз.. закрасить. кц. нцпокане (снизу свободно).. закрасить.. вправо. кц кон  
7: использоватьРобот алг нач. закрасить. нцпокаснизу свободно..вниз.. закрасить. кц. нцпокасверху свободно.. вверх. кц кон
8: использоватьРобот алг нач. нцпокасверху свободно..вверх. кц. нцпокане (сверху свободно).. влево. кц. вверх. вправо. нцпокане (снизу свободно).. вправо. кц. вниз. закрасить. нцпокане (слева свободно).. вниз. кц. вверх. закрасить кон
15: влево | Двигаемся влево, пока не дойдём до прохода в горизонтальной стене и закрашиваем клетки нц пока не снизу свободно закрасить влево кц | Двигаемся дальше до горизонтальной стены нц пока снизу свободно влево кц | Двигаемся влево, пока не дойдём до вертикальной стены и закрашиваем клетки нц пока слева свободно закрасить влево кц | Двигаемся вверх, пока не дойдём до прохода в вертикальной стене и закрашиваем клетки нц пока не слева свободно закрасить вверх кц | Двигаемся дальше до вертикальной стены нц пока слева свободно вверх кц | Двигаемся вверх до конца вертикальной стены и закрашиваем клетки нц пока не слева свободно закрасить вверх кц  
10: нц пока не снизу свободно закрасить вправо кц нц пока снизу свободно вправо кц нц пока справа свободно закрасить вправо кц нц пока не справа свободно закрасить вверх кц нц пока справа свободно вверх кц нц пока не справа свободно закрасить вверх кц  
11: использоватьРобот алг нач. вправо. нцпокане сверху свободно..закрасить.. вправо. кц. нцпокасверху свободно.. вправо. кц. нцпокасправа свободно.. закрасить.. вправо. кц. нцпокане справа свободно.. закрасить.. вниз. кц. нцпокасправа свободно.. вниз. кц. нцпокане справа свободно.. закрасить.. вниз. кц кон  
12: использоватьРобот алг нач. нцпокаслева свободно..влево. кц. нцпокане слева свободно.. закрасить.. вверх. кц. нцпокаслева свободно.. вверх. кц. нцпокане слева свободно.. закрасить.. вверх. кц. влево. вниз. нцпокане справа свободно.. закрасить.. вниз. кц. нцпокасправа свободно.. вниз. кц. нцпокане справа свободно.. закрасить.. вниз. кц кон
13: нц пока не (снизу свободно) вверх закрасить вниз вправо кц
 
14: закрасить вправо закрасить нц пока справа свободно вправо вниз закрасить вправо закрасить кц нц пока не справа свободно вверх вправо закрасить вправо закрасить кц  
15: нц пока снизу свободно вниз влево влево кц нц пока не слева свободно закрасить вправо закрасить вправо вниз кц  

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-03-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: