СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Презентация «Готовимся к ОГЭ по информатике. Часть 2. Задание 15»

Категория: Информатика

Нажмите, чтобы узнать подробности

Презентация может быть использована при подготовке учеников 9 класса к ОГЭ по информатике

на консультациях либо при самостоятельной подготовке. Содержит необходимый теоретический

материал и примеры выполнения заданий различной сложности для 2 части ОГЭ, выполняемой на

компьютере.

Просмотр содержимого документа
«Презентация «Готовимся к ОГЭ по информатике. Часть 2. Задание 15»»

ОГЭ по информатике Часть 2. Задание 15

ОГЭ по информатике

Часть 2. Задание 15

Справочная информация В задании 15 проверяется умение создавать и выполнять программы для заданного исполнителя. Задание 15 проверяет умение записать алгоритм для формального исполнителя «Робот». Алгоритм может быть выполнен в среде программирования КуМир или же записан в любом текстовом редакторе. Формулировке задания 15 предшествует описание команд исполнителя и синтаксиса записи алгоритмических конструкций, поэтому задание может быть выполнено даже теми школьниками, которые не знакомы с используемым языком, но владеют основами алгоритмизации. Максимально за это задание можно получить 2 балла. В рассмотренных далее примерах используется версия среды программирования КуМир 2.1.0-rc11, разработанная по заказу Российской академии наук и распространяемая свободно на условиях лицензии GNU 2.0. Скачать эту среду можно на официальном сайте разработчиков по адресу http://www.niisi.ru/kumir  .

Справочная информация

В задании 15 проверяется умение создавать и выполнять программы для заданного исполнителя.

Задание 15 проверяет умение записать алгоритм для формального исполнителя «Робот». Алгоритм может быть выполнен в среде программирования КуМир или же записан в любом текстовом редакторе. Формулировке задания 15 предшествует описание команд исполнителя и синтаксиса записи алгоритмических конструкций, поэтому задание может быть выполнено даже теми школьниками, которые не знакомы с используемым языком, но владеют основами алгоритмизации.

Максимально за это задание можно получить 2 балла.

В рассмотренных далее примерах используется версия среды программирования КуМир 2.1.0-rc11, разработанная по заказу Российской академии наук и распространяемая свободно на условиях лицензии GNU 2.0. Скачать эту среду можно на официальном сайте разработчиков по адресу http://www.niisi.ru/kumir .

Справочная информация Критерии оценивания выполнения задания Возможны различные варианты решения. Допускается использование иного синтаксиса инструкций исполнителя, более привычного для учащихся. В частности, использование проверки «справа стена» вместо «не справа свободно». Допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения. Указания по оцениванию Баллы Алгоритм правильно работает при всех допустимых исходных данных 2 При всех допустимых исходных данных верно следующее: 1) выполнение алгоритма завершается, и при этом Робот не разбивается; 1 Задание выполнено неверно, т.е. не выполнены условия, позволяющие поставить 1 или 2 балла 0 2) закрашено не более 10 лишних клеток; Максимальный балл 3) остались незакрашенными не более 10 клеток из числа тех, которые должны были быть закрашены 2

Справочная информация

Критерии оценивания выполнения задания

Возможны различные варианты решения.

Допускается использование иного синтаксиса инструкций исполнителя, более привычного для учащихся. В частности, использование проверки «справа стена» вместо «не справа свободно».

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

Указания по оцениванию

Баллы

Алгоритм правильно работает при всех допустимых исходных данных

2

При всех допустимых исходных данных верно следующее:

1) выполнение алгоритма завершается, и при этом Робот не разбивается;

1

Задание выполнено неверно, т.е. не выполнены условия, позволяющие поставить 1 или 2 балла

0

2) закрашено не более 10 лишних клеток;

Максимальный балл

3) остались незакрашенными не более 10 клеток из числа тех, которые должны были быть закрашены

2

Справочная информация Исполнитель: Робот. Среда исполнителя: Робот работает на клетчатом поле (между клетками могут быть расположены стены) и умещается целиком в одной клетке. Попытка переместить Робота через стену приводит к поломке Робота. Возможное исходное положение Робота на клетчатом поле обозначается ромбиком. Окно Редактора Окно Исполнителя

Справочная информация

Исполнитель: Робот.

Среда исполнителя: Робот работает на клетчатом поле (между клетками могут быть расположены стены) и умещается целиком в одной клетке. Попытка переместить Робота через стену приводит к поломке Робота. Возможное исходное положение Робота на клетчатом поле обозначается ромбиком.

Окно Редактора

Окно Исполнителя

Справочная информация Окно Робота открывается с помощью команды меню  Окна → Робот или с помощью кнопки Размеры поля устанавливается с помощью команды  Робот → Новая обстановка. Колёсиком мыши можно изменять масштаб просмотра .

Справочная информация

Окно Робота открывается с помощью команды меню Окна → Робот

или с помощью кнопки

Размеры поля устанавливается с помощью команды Робот → Новая обстановка.

Колёсиком мыши можно изменять масштаб просмотра .

Справочная информация Редактировать стартовую обстановку (исходное положение, стены, проходы и др.) можно командой меню  Робот → Редактировать обстановку . При этом цвет поля изменится. Исходное положение Робота изменяется перетаскиванием с нажатой кнопкой мыши. Щелчок на одной из сторон клетки рисует стену.  Повторный щелчок – стирает. Щелчок внутри клетки закрашивает её.  Повторный щелчок – очищает. Для завершения редактирования повторно выберите  Робот → Редактировать обстановку . Обстановку можно сохранить в файл ( Робот → Сохранить обстановку ),  а при необходимости открыть ( Робот → Загрузить обстановку ).

Справочная информация

Редактировать стартовую обстановку (исходное положение, стены, проходы и др.) можно командой меню Робот → Редактировать обстановку .

При этом цвет поля изменится.

Исходное положение Робота изменяется перетаскиванием с нажатой кнопкой мыши.

Щелчок на одной из сторон клетки рисует стену. Повторный щелчок – стирает.

Щелчок внутри клетки закрашивает её. Повторный щелчок – очищает.

Для завершения редактирования повторно выберите Робот → Редактировать обстановку .

Обстановку можно сохранить в файл ( Робот → Сохранить обстановку ), а при необходимости открыть ( Робот → Загрузить обстановку ).

Справочная информация Программа для исполнителя Робот имеет вид: У Робота есть девять команд. Четыре команды — это команды-приказы : вверх вниз  влево вправо использовать Робот алг Имя_программы  нач  . последовательность . команд . кон При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑ вниз ↓, влево ← , вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить , при которой закрашивается клетка, в которой Робот находится в настоящий момент. Несколько команд можно вводить в одной строке, разделяя их знаком « ; ».

Справочная информация

Программа для исполнителя Робот имеет вид:

У Робота есть девять команд.

Четыре команды — это команды-приказы :

вверх

вниз

влево

вправо

использовать Робот

алг Имя_программы нач . последовательность

. команд

.

кон

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

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

Несколько команд можно вводить в одной строке, разделяя их знаком « ; ».

Справочная информация Ещё четыре команды — это команды проверки условий . Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений: сверху свободно снизу свободно слева свободно справа свободно Эти команды можно использовать вместе с командой ветвления «если» : если  условие  то  последовательность команд все   Здесь условие  — одна из команд проверки условия. Последовательность команд  — это одна или несколько любых команд-приказов.

Справочная информация

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

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

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

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

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

Эти команды можно использовать вместе с командой ветвления «если» :

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

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

все

 

Здесь условие  — одна из команд проверки условия.

Последовательность команд  — это одна или несколько любых команд-приказов.

Справочная информация Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм: если справа свободно то  вправо  закрасить все В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например: если справа свободно и не снизу свободно то  вправо все

Справочная информация

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

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

вправо

закрасить

все

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

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

вправо

все

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

Справочная информация

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

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

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

кц

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

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

вправо

кц

15-1 На бесконечном поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится сверху от стены в левом её конце. На рисунке приведено расположение Робота относительно стены (Робот обозначен буквой «Р»). Напишите для Робота алгоритм, закрашивающий все клетки, расположенные выше стены на расстоянии одной пустой клетки от стены, независимо от длины стены. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок). Конечное расположение Робота может быть произвольным. При исполнении алгоритма Робот не должен разрушиться. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

15-1

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

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

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

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

15-1 Алгоритм на естественном языке Робот должен переместиться на клетку вверх, закрасить её. Чтобы Робот мог проверять наличие стены, он должен вернуться вниз на клетку. Далее переместиться на следующую клетку вправо. Повторять выше указанные действия, пока снизу есть стена.

15-1

Алгоритм на естественном языке

  • Робот должен переместиться на клетку вверх, закрасить её.
  • Чтобы Робот мог проверять наличие стены, он должен вернуться вниз на клетку.
  • Далее переместиться на следующую клетку вправо.
  • Повторять выше указанные действия, пока снизу есть стена.
15-1 Программа на языке Кумир использовать Робот алг нач . нц пока не снизу свободно . . вверх . . закрасить . . вниз . . вправо . кц кон  Проверяем работу алгоритма  для различных обстановок. Сохраняем полученный файл  под требуемым именем. Записываем имя файла в бланк №2.

15-1

Программа на языке Кумир

использовать Робот

алг

нач

. нц пока не снизу свободно

. . вверх

. . закрасить

. . вниз

. . вправо

. кц

кон

Проверяем работу алгоритма для различных обстановок.

Сохраняем полученный файл под требуемым именем.

Записываем имя файла в бланк №2.

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

15-2

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

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

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

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

15-2

Алгоритм на естественном языке

  • Так как исходное положение Робота может быть любым внутри прямоугольника, сначала он должен переместиться к одной из вертикальных стен, например, двигаясь вправо, пока справа свободно.
  • Далее Робот должен переместиться к нижней стене, двигаясь вниз, пока снизу свободно.
  • Робот закрашивает правую угловую клетку.
  • Далее Робот должен перемещаться влево вдоль нижней стены, пока слева свободно.
  • Робот закрашивает левую угловую клетку.
15-2 Программа на языке Кумир использовать Робот алг нач . нц пока справа свободно . . вправо . кц . нц пока снизу свободно . . вниз . кц . закрасить . нц пока слева свободно . . влево . кц . закрасить кон

15-2

Программа на языке Кумир

использовать Робот

алг

нач

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

. . вправо

. кц

. нц пока снизу свободно

. . вниз

. кц

. закрасить

. нц пока слева свободно

. . влево

. кц

. закрасить

кон

15-3 На бесконечном поле имеется стена, длины отрезков стены неизвестны. Стена состоит из одного вертикального и трёх равных горизонтальных отрезков (отрезки стены расположены буквой «Е»). Все отрезки неизвестной длины. Робот находится в клетке, расположенной непосредственно слева от нижнего конца вертикального отрезка. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»). Напишите для Робота алгоритм, закрашивающий все клетки, расположенные под верхним горизонтальным отрезком стены. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого справа рисунка Робот должен закрасить следующие клетки (см. рисунок). Конечное расположение Робота может быть произвольным. При исполнении алгоритма Робот не должен разрушиться. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

15-3

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

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

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

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

15-3 Алгоритм на естественном языке Робот сначала должен обойти вертикальную и верхнюю горизонтальную стену. Для этого нужно перемещаться вверх, пока справа есть стена. Затем переместиться на одну клетку вправо к началу горизонтальной стены. Далее Робот должен перемещаться вправо, пока снизу есть стена. Затем переместиться на одну клетку вниз. Далее Робот должен перемещаться влево и закрашивать клетку, пока слева свободно.

15-3

Алгоритм на естественном языке

  • Робот сначала должен обойти вертикальную и верхнюю горизонтальную стену. Для этого нужно перемещаться вверх, пока справа есть стена.
  • Затем переместиться на одну клетку вправо к началу горизонтальной стены.
  • Далее Робот должен перемещаться вправо, пока снизу есть стена.
  • Затем переместиться на одну клетку вниз.
  • Далее Робот должен перемещаться влево и закрашивать клетку, пока слева свободно.
15-3 Программа на языке Кумир использовать Робот алг нач . нц пока не справа свободно . . вверх . кц . вправо . нц пока не снизу свободно . . вправо . кц . вниз . нц пока слева свободно . . влево . . закрасить . кц кон

15-3

Программа на языке Кумир

использовать Робот

алг

нач

. нц пока не справа свободно

. . вверх

. кц

. вправо

. нц пока не снизу свободно

. . вправо

. кц

. вниз

. нц пока слева свободно

. . влево

. . закрасить

. кц

кон

15-4

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

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

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

15-4 Алгоритм на естественном языке Робот должен закрасить исходную клетку, затем переместиться вправо. Так как длины стен неизвестны, эти два действия он повторяет, пока сверху есть стена. Робот остановится в первой клетке прохода. Так ширина прохода также неизвестна, Робот перемещается вправо, пока сверху нет стены. Робот остановится в первой клетке после прохода. Далее он продолжит закрашивать клетки и двигаться вправо, но должен остановиться, когда справа от него будет стена. То есть повторять эти действия, пока справа свободно. Далее Робот аналогично закрашивает клетки и перемещается вниз, пока справа от него стена. Робот движется вниз по проходу, пока справа от него нет стены. Робот продолжит закрашивать клетки и двигаться вниз, пока справа от него есть стена.

15-4

Алгоритм на естественном языке

  • Робот должен закрасить исходную клетку, затем переместиться вправо. Так как длины стен неизвестны, эти два действия он повторяет, пока сверху есть стена.
  • Робот остановится в первой клетке прохода. Так ширина прохода также неизвестна, Робот перемещается вправо, пока сверху нет стены.
  • Робот остановится в первой клетке после прохода. Далее он продолжит закрашивать клетки и двигаться вправо, но должен остановиться, когда справа от него будет стена. То есть повторять эти действия, пока справа свободно.
  • Далее Робот аналогично закрашивает клетки и перемещается вниз, пока справа от него стена.
  • Робот движется вниз по проходу, пока справа от него нет стены.
  • Робот продолжит закрашивать клетки и двигаться вниз, пока справа от него есть стена.
15-4 использовать Робот  алг  нач  . нц пока не сверху свободно  . . закрасить; вправо  . кц  . нц пока сверху свободно  . . вправо  . кц  . нц пока справа свободно  . . закрасить; вправо  . кц  . нц пока не справа свободно  . . закрасить; вниз  . кц  . нц пока справа свободно  . . вниз  . кц  . нц пока не справа свободно  . . закрасить; вниз  . кц  кон

15-4

использовать Робот алг нач . нц пока не сверху свободно . . закрасить; вправо . кц . нц пока сверху свободно . . вправо . кц . нц пока справа свободно . . закрасить; вправо . кц . нц пока не справа свободно . . закрасить; вниз . кц . нц пока справа свободно . . вниз . кц . нц пока не справа свободно . . закрасить; вниз . кц кон

15-5

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

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

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

15-5 Алгоритм на естественном языке Робот сначала должен перемещаться вдоль вертикальной стены вверх, пока сверху свободно. Робот остановится в угловой клетке. Робот закрашивает эту клетку и перемещается влево, пока сверху есть стена. Робот остановится в первой клетке прохода. Далее Робот перемещается влево, пока сверху нет стены. Робот остановится в первой клетке после прохода. Далее он продолжит закрашивать клетки и двигаться влево, пока сверху есть стена. Чтобы обойти стену, Робот должен переместиться на одну клетку вверх, затем вправо. Далее Робот аналогично закрашивает клетки и перемещается вправо, пока снизу от него стена. Робот движется вправо по проходу, пока снизу от него нет стены. Робот продолжит закрашивать клетки и двигаться вправо, пока снизу от него есть стена.

15-5

Алгоритм на естественном языке

  • Робот сначала должен перемещаться вдоль вертикальной стены вверх, пока сверху свободно.
  • Робот остановится в угловой клетке. Робот закрашивает эту клетку и перемещается влево, пока сверху есть стена.
  • Робот остановится в первой клетке прохода. Далее Робот перемещается влево, пока сверху нет стены.
  • Робот остановится в первой клетке после прохода. Далее он продолжит закрашивать клетки и двигаться влево, пока сверху есть стена.
  • Чтобы обойти стену, Робот должен переместиться на одну клетку вверх, затем вправо.
  • Далее Робот аналогично закрашивает клетки и перемещается вправо, пока снизу от него стена.
  • Робот движется вправо по проходу, пока снизу от него нет стены.
  • Робот продолжит закрашивать клетки и двигаться вправо, пока снизу от него есть стена.
использовать Робот алг нач . нц пока сверху свободно . . вверх . кц . нц пока не сверху свободно . . закрасить; влево . кц . нц пока сверху свободно . . влево . кц . нц пока не сверху свободно . . закрасить; влево . кц 15-5 . вверх . вправо . нц пока не снизу свободно . . закрасить; вправо . кц . нц пока снизу свободно . . вправо . кц . нц пока не снизу свободно . . закрасить; вправо . кц кон

использовать Робот

алг

нач

. нц пока сверху свободно

. . вверх

. кц

. нц пока не сверху свободно

. . закрасить; влево

. кц

. нц пока сверху свободно

. . влево

. кц

. нц пока не сверху свободно

. . закрасить; влево

. кц

15-5

. вверх

. вправо

. нц пока не снизу свободно

. . закрасить; вправо

. кц

. нц пока снизу свободно

. . вправо

. кц

. нц пока не снизу свободно

. . закрасить; вправо

. кц

кон

15-6 На бесконечном поле имеются две одинаковые горизонтальные параллельные стены, расположенные друг под другом и отстоящие друг от друга более чем на 1 клетку. Левые края стен находятся на одном уровне. Длины стен неизвестны. Робот находится в клетке, расположенной непосредственно под верхней стеной. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»). Напишите для Робота алгоритм, закрашивающий все клетки, расположенные ниже горизонтальных стен. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок). Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться. Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

15-6

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

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

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

15-6 Алгоритм на естественном языке Так как конкретное положение Робота под верхней стеной не известно, он сначала должен переместиться к началу верхней стены, двигаясь влево, пока сверху стена. Робот остановится за стеной. Чтобы вернуться под стену, он должен переместиться на одну клетку вправо. Далее Робот закрашивает клетку и перемещается вправо, пока сверху есть стена. Робот остановится за стеной. Чтобы спуститься до нижней стены, он сначала должен вернуться под стену, переместившись на одну клетку влево. Далее Робот должен спуститься к нижней стене, перемещаясь вниз, пока снизу свободно. Затем нужно обойти стену: вправо, вниз, влево. Далее Робот закрашивает клетку и перемещается влево, пока сверху есть стена.

15-6

Алгоритм на естественном языке

  • Так как конкретное положение Робота под верхней стеной не известно, он сначала должен переместиться к началу верхней стены, двигаясь влево, пока сверху стена.
  • Робот остановится за стеной. Чтобы вернуться под стену, он должен переместиться на одну клетку вправо.
  • Далее Робот закрашивает клетку и перемещается вправо, пока сверху есть стена.
  • Робот остановится за стеной. Чтобы спуститься до нижней стены, он сначала должен вернуться под стену, переместившись на одну клетку влево.
  • Далее Робот должен спуститься к нижней стене, перемещаясь вниз, пока снизу свободно.
  • Затем нужно обойти стену: вправо, вниз, влево.
  • Далее Робот закрашивает клетку и перемещается влево, пока сверху есть стена.
использовать Робот алг нач . нц пока не сверху свободно . . влево . кц . вправо . нц пока не сверху свободно . . закрасить . . вправо . кц . влево . нц пока снизу свободно . . вниз . кц 15-6 . вправо . вниз . влево . нц пока не сверху свободно . . закрасить . . влево . кц кон

использовать Робот

алг

нач

. нц пока не сверху свободно

. . влево

. кц

. вправо

. нц пока не сверху свободно

. . закрасить

. . вправо

. кц

. влево

. нц пока снизу свободно

. . вниз

. кц

15-6

. вправо

. вниз

. влево

. нц пока не сверху свободно

. . закрасить

. . влево

. кц

кон

15-7

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

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

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

15-7 Алгоритм на естественном языке Робот должен закрашивать клетку и перемещаться вправо, пока справа свободно. Далее Робот должен закрашивать клетку и перемещаться вниз, пока снизу свободно. Клетка, в которой Робот остановится, будет незакрашенной. Её нужно закрасить. Далее Робот должен перемещаться влево, пока снизу есть стена. Затем Робот должен переместиться вниз к началу нижней вертикальной стены. Далее Робот должен закрашивать клетку и перемещаться вниз, пока справа есть стена. Робот остановится в клетке Х, закрасит её и переместится вправо к началу нижней горизонтальной стены. Далее Робот должен закрашивать клетку и перемещаться вправо, пока сверху есть стена.

15-7

Алгоритм на естественном языке

  • Робот должен закрашивать клетку и перемещаться вправо, пока справа свободно.
  • Далее Робот должен закрашивать клетку и перемещаться вниз, пока снизу свободно.
  • Клетка, в которой Робот остановится, будет незакрашенной. Её нужно закрасить.
  • Далее Робот должен перемещаться влево, пока снизу есть стена.
  • Затем Робот должен переместиться вниз к началу нижней вертикальной стены.
  • Далее Робот должен закрашивать клетку и перемещаться вниз, пока справа есть стена.
  • Робот остановится в клетке Х, закрасит её и переместится вправо к началу нижней горизонтальной стены.
  • Далее Робот должен закрашивать клетку и перемещаться вправо, пока сверху есть стена.
использовать Робот алг нач . нц пока справа свободно . . закрасить; вправо . кц . нц пока снизу свободно . . закрасить; вниз . кц . закрасить . нц пока не снизу свободно . . влево . кц . вниз . нц пока не справа свободно 15-7 . . закрасить; вниз . кц . закрасить; вправо . нц пока не сверху свободно . . закрасить; вправо . кц кон

использовать Робот

алг

нач

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

. . закрасить; вправо

. кц

. нц пока снизу свободно

. . закрасить; вниз

. кц

. закрасить

. нц пока не снизу свободно

. . влево

. кц

. вниз

. нц пока не справа свободно

15-7

. . закрасить; вниз

. кц

. закрасить; вправо

. нц пока не сверху свободно

. . закрасить; вправо

. кц

кон

15-8

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

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

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

15-8 Алгоритм на естественном языке Робот сначала должен переместиться на первую ступеньку: вправо и вниз. Затем Робот должен закрашивать две клетки по горизонтали и спускаться на клетку вниз, пока не окажется в нижней клетке, то есть пока справа свободно. Нижняя клетка буден незакрашенной. Робот должен закрасить её, переместить на клетку вверх и закрасить её. Затем Робот должен сдвигаться на клетку вправо и закрашивать две клетки по вертикали, пока не достигнет правой вертикальной стены, то есть пока справа свободно.

15-8

Алгоритм на естественном языке

  • Робот сначала должен переместиться на первую ступеньку: вправо и вниз.
  • Затем Робот должен закрашивать две клетки по горизонтали и спускаться на клетку вниз, пока не окажется в нижней клетке, то есть пока справа свободно.
  • Нижняя клетка буден незакрашенной. Робот должен закрасить её, переместить на клетку вверх и закрасить её.
  • Затем Робот должен сдвигаться на клетку вправо и закрашивать две клетки по вертикали, пока не достигнет правой вертикальной стены, то есть пока справа свободно.
использовать Робот  алг  нач  . вправо  . вниз  . нц пока справа свободно  . . закрасить  . . вправо  . . закрасить  . . вниз  . кц  . закрасить  . вверх  . закрасить  . нц пока справа свободно  . . вправо  . . закрасить  . . вверх  . . закрасить  . кц  кон 15-8

использовать Робот алг нач . вправо . вниз . нц пока справа свободно . . закрасить . . вправо . . закрасить . . вниз . кц . закрасить . вверх . закрасить . нц пока справа свободно . . вправо . . закрасить . . вверх . . закрасить . кц кон

15-8