Задание 15 ОГЭ по информатике · 0A558F

ВысокаяКЭС 3.1
Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может.
У Робота есть девять команд. Четыре команды – это команды-приказы:
вверх вниз влево вправо
При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится.
Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.
Ещё четыре команды – это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:
сверху свободно снизу свободно слева свободно справа свободно
Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:
если условие то
последовательность команд
все
Здесь условие – одна из команд проверки условия.
Последовательность команд – это одна или несколько любых команд-приказов.
Например, для передвижения на одну клетку вправо, если справа нет стенки и закрашивания клетки, можно использовать такой алгоритм:
если справа свободно то
вправо
закрасить
все
В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:
если (справа свободно) и (не снизу свободно) то
вправо
все
Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:
нц пока условие
последовательность команд
кц
Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:
нц пока справа свободно
вправо
кц
Выполните задание.
На бесконечном поле имеется вертикальная стена. Длина стены неизвестна. От верхнего конца стены вправо отходит горизонтальная стена также неизвестной длины. От правого конца этой стены отходит вниз вторая вертикальная стена неизвестной длины. Робот находится в клетке, расположенной справа от нижнего края первой вертикальной стены.
На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»):
Напишите для Робота алгоритм, закрашивающий клетки, расположенные под горизонтальной стеной и слева от второй вертикальной стены. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок):
Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера и любого допустимого расположения стен. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться.
Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.
Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена.
Рисунок к заданию 15
Рисунок 2 к заданию 15
Показать ответ
нц пока сверху свободно; вверх; кц; закрасить; нц пока справа свободно; вправо; закрасить; кц; нц пока снизу свободно; вниз; закрасить; кц
Подсказки (3)
  1. Как Роботу попасть в клетку сразу под горизонтальной стеной?
  2. Сначала двигайтесь вверх, пока это возможно, затем закрасьте ряд вправо до второй вертикальной стены.
  3. После закрашивания горизонтального ряда двигайтесь вниз, пока это возможно, закрашивая каждую клетку.
Решение
1. Из исходной клетки Робот должен подняться до клетки под горизонтальной стеной. Движение вверх продолжается, пока сверху свободно.

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

3. Оказавшись в клетке слева от второй вертикальной стены, движемся вниз до конца стены, закрашивая все клетки.

4. Один из подходящих алгоритмов:
нц пока сверху свободновверхкцзакраситьнц пока справа свободновправозакраситькцнц пока снизу свободновниззакраситькц
Частые ошибки
  • Попытка двигаться вверх после достижения горизонтальной стены.
  • Отсутствие команды закрасить для первой клетки горизонтального ряда.
  • Продолжение движения вправо после второй вертикальной стены.
  • Закрашивание клетки, находящейся справа от второй вертикальной стены.

Источник: Открытый банк ФИПИ

Похожие задания

15Четыре команды – это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот…Задания открытого банка ФИПИ · 0005FD15Четыре команды – это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот…Задания открытого банка ФИПИ · 09900E15Четыре команды – это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот…Задания открытого банка ФИПИ · 162D1C15Четыре команды – это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот…Задания открытого банка ФИПИ · 1CC01015Четыре команды – это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот…Задания открытого банка ФИПИ · 242DE715Четыре команды – это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот…Задания открытого банка ФИПИ · 322ECA15Четыре команды – это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот…Задания открытого банка ФИПИ · 35CF4815Четыре команды – это команды-приказы: вверх вниз влево вправо При выполнении любой из этих команд Робот…Задания открытого банка ФИПИ · 372C9F

Нужен репетитор по информатике?

Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.

Репетиторы по информатике

Подбор репетитора

Напишите, что нужно, — команда Precettore подберёт репетитора и свяжется с вами.

Готовьтесь к ОГЭ по информатике в Precettore

Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.