Бесплатно
огэ
информатика
задание 15
робот
алгоритм

Задание 15. Алгоритм для исполнителя Робот — теория и разбор

0 просмотров0 скачиваний

Совет: выделите текст, чтобы спросить у ИИ, или наведите (на телефоне — тапните) на подчёркнутое слово — увидите подсказку.

Задание 15. Алгоритм для исполнителя Робот — теория и разбор

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

Что нужно знать

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

Команды-приказы (пять): вверх, вниз, влево, вправо — сдвигают Робота на одну клетку; если по пути стена — Робот разрушается. Пятая — закрасить, закрашивает клетку, где Робот находится сейчас.

Команды проверки условия (четыре): сверху свободно, снизу свободно, слева свободно, справа свободно — проверяют, нет ли стены в соответствующем направлении, не двигая Робота.

Из проверок строятся управляющие конструкции:

если <условие> то
    <команды>
все

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

если...то...все выполняет команды один раз, если условие истинно. нц пока...кц повторяет команды, пока условие остаётся истинным — это и есть способ пройти комнату любого размера, не зная заранее, сколько клеток впереди. Команды исполнителя Робот: приказы и проверки условий

Размер поля в условии не задан явно и никогда не совпадает с тем, что нарисовано на картинке для примера — правильный алгоритм должен использовать нц пока <проверка направления>, а не заранее известное число шагов, иначе он сработает только на одном конкретном поле.

Правило оценивания: 2 балла — алгоритм работает для поля любого размера и конфигурации стен; 1 балл — алгоритм завершается и не разрушает Робота, но допускает немного (не больше 10) лишних или пропущенных закрашенных клеток; 0 баллов — Робот разрушается, алгоритм не завершается или решает только конкретную картинку из примера.

Разбор примера

Робот находится в левом верхнем углу прямоугольной комнаты неизвестного размера (стены — только по периметру, без проёмов). Закрасьте все клетки верхнего ряда комнаты и весь правый столбец, начиная от старта. Комната с закрашенными верхним рядом и правым столбцом

Как думать. Задача распадается на два независимых прохода вдоль стен: сначала пройти вправо до упора, закрашивая путь, затем — вниз до упора, тоже закрашивая. Оба прохода — циклы «пока свободно в нужную сторону».

Показать решение и ответ

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

Шаг 2. Оказавшись в правом верхнем углу, двигаемся вниз, пока снизу свободно, закрашивая каждую новую клетку — это проходит весь правый столбец до нижней стены.

закрасить
нц пока справа свободно
    вправо
    закрасить
кц
нц пока снизу свободно
    вниз
    закрасить
кц

Оба цикла используют проверку направления, а не число шагов — поэтому алгоритм одинаково верно сработает для комнаты 3×3 и для комнаты 20×5.

Ответ: приведённый алгоритм (2 балла — работает при любом размере комнаты)

Как проверить логику в Python

Логику алгоритма Робота удобно проверить симуляцией на виртуальной сетке — если множество закрашенных клеток совпадает с ожидаемым (верхний ряд + правый столбец), алгоритм верен:

def run(width, height):
    x, y = 0, 0
    painted = {(x, y)}
    while x + 1 < width:      # аналог "нц пока справа свободно"
        x += 1
        painted.add((x, y))
    while y + 1 < height:     # аналог "нц пока снизу свободно"
        y += 1
        painted.add((x, y))
    return painted

for w, h in [(5, 3), (2, 2), (8, 6)]:
    result = run(w, h)
    expected = {(i, 0) for i in range(w)} | {(w - 1, j) for j in range(h)}
    print(w, h, result == expected)   # True для любого размера

Такая проверка — не часть решения на экзамене (там алгоритм пишут в среде исполнителя или текстом), а способ убедиться, что логика действительно универсальна.

Задание 15. Алгоритм для исполнителя Робот — теория и разбор
Команды Робота, циклы «пока свободно» и алгоритм, работающий для поля любого размера — разбор примера и проверка в Python.

Похожие материалы

Задание 16. Программирование на языке программирования — теория и разбор
Бесплатно

Задание 16. Программирование на языке программирования — теория и разбор

Типовой шаблон решения: цикл + условие делимости + счётчик — разбор примера на Python и Паскале.

10
Задание 14. Обработка данных в электронной таблице — теория и разбор
Бесплатно

Задание 14. Обработка данных в электронной таблице — теория и разбор

СЧЁТЕСЛИ, СУММЕСЛИ и круговая диаграмма для большого массива данных — разбор примера и проверка в Python.

00
Задание 13.2. Создание текстового документа — теория и разбор
Бесплатно

Задание 13.2. Создание текстового документа — теория и разбор

13.2 Текстовый документ

Критерии оценивания текста и таблицы по образцу: отступы, выравнивание, формат файла — разбор примера и чек-лист.

00
Задание 13.1. Создание презентации — теория и разбор
Бесплатно

Задание 13.1. Создание презентации — теория и разбор

13.1 Презентация

Критерии оценивания презентации из 3 слайдов: структура, шрифт, изображения, формат файла — разбор примера и чек-лист.

00
Задание 12. Файловая система: количество и объём файлов — теория и разбор
Бесплатно

Задание 12. Файловая система: количество и объём файлов — теория и разбор

Маски имён файлов (* и ?) и перевод байтов в килобайты по степеням двойки — разбор примера и проверка в Python.

10
Задание 11. Поиск информации в файлах и каталогах — теория и разбор
Бесплатно

Задание 11. Поиск информации в файлах и каталогах — теория и разбор

Двухшаговая техника поиска: найти файл среди папок, затем найти фразу внутри файла — разбор примера и проверка в Python.

00
Задание 15. Алгоритм для исполнителя Робот — теория и разбор — Задание 15. Алгоритм для исполнителя Робот, Информатика ОГЭ | скачать