← Все вопросы

Задание 15.1 ОГЭ: как закрасить клетки Роботом, двигаясь до стены циклом?

Задан 8 месяцев назад407 просмотров2 ответа
6

В 15.1 надо написать программу для Робота (КуМир). Поле с горизонтальными и вертикальными стенами, надо пройти и закрасить определённые клетки. Я пишу команды по одной, но если поле большое — это нереально. Как правильно применять цикл «пока»?

2 ответа

10
✓ Принятый ответ — помог автору

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

Типовой кусок «иди вправо до стены и всё закрашивай»:

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

Пояснения:

  • справа свободно — условие, что справа нет стены, можно шагнуть.
  • Внутри цикла закрашиваем текущую клетку и делаем шаг.
  • После цикла закрасить ещё раз — потому что последнюю клетку у стены цикл уже не обработает (он остановился, когда справа стена).

Комбинируй такие блоки для движения в разные стороны. Условия Робота: сверху свободно, снизу свободно, слева свободно, справа свободно и их отрицания сверху стена и т.п.

5

Очень частая потеря балла — забывают закрасить либо первую, либо последнюю клетку. Перед сдачей мысленно прогони программу по краю поля: закрасилась ли клетка прямо у стены? Если нужно закрашивать клетки вдоль всей стены, иногда удобнее сначала закрасить текущую, потом шагать — порядок закрасить; вправо против вправо; закрасить меняет результат на концах.

Ваш ответ

Войдите, чтобы ответить на вопрос.