← Все вопросы

кумир цикл нц пока — робот должен пройти вдоль стены и всё закрасить

Задан 15 месяцев назад1.3к просмотров2 ответа
7

Есть длинная стена сверху, Робот стоит слева под ней. Надо пройти весь ряд вдоль стены и закрасить каждую клетку. Я сделал так, но он красит только первую и едет дальше пустой:

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

Как закрасить ВСЕ клетки по пути, а не одну в конце?

2 ответа

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

Ага, у тебя закрасить стоит ПОСЛЕ цикла, поэтому красится только финальная клетка. Надо закрашивать ВНУТРИ цикла, на каждом шаге:

использовать Робот
алг
нач
  закрасить
  нц пока справа свободно
    вправо
    закрасить
  кц
кон

Разбор по шагам:

  • сначала красим клетку, где стоим (стартовую),
  • потом в цикле: шагнул вправо → сразу закрасил,
  • и так пока справа не стена.

Важный момент — первое закрасить ДО цикла. Если его убрать, стартовая клетка останется белой, потому что цикл сначала делает вправо. Это классическая ошибка «закрасил всё кроме первой».

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

4

Правило простое: что хочешь делать на КАЖДОЙ клетке — пиши внутри нц ... кц. Что один раз — снаружи.

У тебя закрасить вылетело наружу, оттого и одна клетка. Закинь его в цикл и не забудь про стартовую клетку отдельно.

Ваш ответ

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