Найти в Дзене
Информатика для всех

ОГЭ по информатике. Решение задачи 15. Исполнитель Робот умеет перемещаться по лабиринту

Продолжаем готовиться к экзаменам по информатике и рассмотрим решение задачи номер 15. Задача 15. Требования к предметным результатам освоения основной образовательной программы: Создавать и выполнять программы для заданного исполнителя Примерное время выполнения задания (мин.) - 25 Условие задачи: Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды – это команды-приказы: вверх , вниз, влево, вправо. Также у Робота есть команда закрасить. И ещё четыре команды – это команды проверки условий: сверху свободно, снизу свободно, слева свободно, справа свободно. Эти команды можно использовать вместе с условием «eсли». Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно ниже горизонтальной стены и правее вертикальной стены. Для выполнения данной задачи рекомендуется и
Оглавление

Продолжаем готовиться к экзаменам по информатике и рассмотрим решение задачи номер 15.

Задача 15. Требования к предметным результатам освоения основной образовательной программы: Создавать и выполнять программы для заданного исполнителя
Примерное время выполнения задания (мин.) - 25

Условие задачи:

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может.
У Робота есть девять команд.
Четыре команды – это команды-приказы:
вверх , вниз, влево, вправо.
Также у Робота есть команда закрасить.
И ещё четыре команды – это команды проверки условий:
сверху свободно, снизу свободно, слева свободно, справа свободно.
Эти команды можно использовать вместе с условием «eсли».
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно ниже горизонтальной стены и правее вертикальной стены.

-2

-3

Для выполнения данной задачи рекомендуется использовать среду КуМир, предназначенную для получения базовых знаний алгоритмизации в средней школе.

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

В частности, исполнитель Робот может поддерживать команды движения в заданном направлении, которые можно сочетать с ветвлениями и циклами (включая проверку наличия преград на маршруте). Кроме этого, Робот может закрашивать клетки своего маршрута по мере его прохождения.

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

На рисунке ниже представлен скрин системы Кумир с обстановкой, созданной для нашей задачи.

-4

Как изменить поле робота

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

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

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

Все эти действия надо производить при незапущенной программе движения робота.

-5

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

-6

Вся траектория движения Робота по маршруту может быть условна разбита на три фрагмента:

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

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

Известно только, что в каждой стене (и горизонтальной, и вертикальной) есть ровно один проход, причем точное место прохода и его ширина неизвестны.

Ниже приводится алгоритм решения данной задачи, реализованный в среде КуМир.

-7

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

-8

О системе КуМир

КуМир (Комплект Учебных МИРов) - система программирования, предназначенная для поддержки начальных курсов информатики и программирования в средней школе.

Система КуМир написана на языке C++ с использованием платформы Qt. Система разрабатывается под открытой лицензией GPL.

В КуМир встроено несколько графических исполнителей алгоритмов, действия которых визуализируются на их "игровом поле".

Система позволяет работать с исполнителями: Кузнечиком, Черепахой, Водолеем, Вертуном, Роботом, Чертёжником, Рисователем и др.

  • При вводе программы КуМир осуществляет постоянный полный контроль ее правильности, сообщая на полях программы об всех обнаруженных ошибках.
  • При выполнении программы в пошаговом режиме КуМир выводит на поля результаты операций присваивания и значения логических выражений. Это позволяет ускорить процесс освоения азов программирования.
  • Кумир работает в операционных системах Windows, MacOS и GNU/Linux.
-9

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

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

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

-10

Обстановки Робота могут храниться в файлах специального формата (расширение .fil).

Операции редактирования обстановки:

  • поставить/убрать стену – щелкнуть по границе между клетками,
  • закрасить/сделать чистой клетку – щелкнуть по клетке.

-11

Система команд исполнителя «Робот» включает:
5 команд, вызывающих действия Робота (влево, вправо, вверх, вниз, закрасить);
10 команд проверки условий:
- 8 команд вида [слева/ справа/ сверху/ снизу] [стена/ свободно],
- 2 команды вида клетка [закрашена/ чистая];
- 2 команды измерения (температура, радиация).
Командам влево, вправо, вверх, вниз, закрасить соответствуют алгоритмы-процедуры языка КуМир.
Остальным командам соответствуют алгоритмы-функции.

-12

При подготовке текста статьи частично были использованы материалы с официального сайта проекта КуМир.

Посмотреть работу Робота в среде Кумир можно в прикрепленном ниже видеофайле.

Видео к данной задаче по работе в среде Кумир:

Задача для самостоятельного выполнения для закрепления материала (из материалов ВПР - Всероссийских проверочных работ)

ВПР
ВПР

Подписывайтесь на канал, ставьте лайки, оставайтесь на связи!

Успехов на экзаменах!