ОГЭ информатика. Задание 15. Создание и выполнение программ для исполнителя — тренажёр | ГдеЕГЭ

ОГЭ информатика. Задание 15. Создание и выполнение программ для исполнителя

Задание 15 ОГЭ по информатике с развёрнутым ответом: создание и выполнение программ для исполнителя. Решаешь на бумаге, открываешь подробный разбор и сверяешься. В пуле 77 задач, за прогон — 5.

Задача 1 из 5Алгоритмы и программирование

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

У ‌Робота ​есть ​девять ​команд. ‌Четыре ​команды ‌\(–\) это ​команды-приказы:

вверх ‌вниз ​влево ‌вправо

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

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

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

сверху ‌свободно ‌снизу ‌свободно ‌слева ​свободно ‌справа ‌свободно

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

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

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

все

Здесь ‌условие ​\(–\) одна ‌из ‌команд ​проверки ​условия.

Последовательность команд \(–\) это ​одна ‌или ‌несколько ​любых ‌команд-приказов.

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

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

вправо

закрасить

все

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

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

вправо

все

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

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

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

кц

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

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

вправо

кц

Выполните ​задание.

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

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

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

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

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

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

Сохраните ‌алгоритм ​в ‌формате ​программы ‌Кумир ​или ‌в ‌текстовом ​файле. ​Название ​файла ‌и ‌каталог ​для ‌сохранения ‌Вам ‌сообщат ‌организаторы ​экзамена.