Задание 15.1 ОГЭ: как закрасить клетки Роботом, двигаясь до стены циклом?
В 15.1 надо написать программу для Робота (КуМир). Поле с горизонтальными и вертикальными стенами, надо пройти и закрасить определённые клетки. Я пишу команды по одной, но если поле большое — это нереально. Как правильно применять цикл «пока»?
2 ответа
Главная идея 15.1 — не считать клетки, а использовать условие со стеной и цикл нц пока. Робот должен работать на поле любого размера, поэтому жёстко прописанные шаги не подойдут.
Типовой кусок «иди вправо до стены и всё закрашивай»:
нц пока справа свободно
закрасить
вправо
кц
закрасить
Пояснения:
справа свободно— условие, что справа нет стены, можно шагнуть.- Внутри цикла закрашиваем текущую клетку и делаем шаг.
- После цикла
закраситьещё раз — потому что последнюю клетку у стены цикл уже не обработает (он остановился, когда справа стена).
Комбинируй такие блоки для движения в разные стороны. Условия Робота: сверху свободно, снизу свободно, слева свободно, справа свободно и их отрицания сверху стена и т.п.
Очень частая потеря балла — забывают закрасить либо первую, либо последнюю клетку. Перед сдачей мысленно прогони программу по краю поля: закрасилась ли клетка прямо у стены? Если нужно закрашивать клетки вдоль всей стены, иногда удобнее сначала закрасить текущую, потом шагать — порядок закрасить; вправо против вправо; закрасить меняет результат на концах.