кумир цикл нц пока — робот должен пройти вдоль стены и всё закрасить
Есть длинная стена сверху, Робот стоит слева под ней. Надо пройти весь ряд вдоль стены и закрасить каждую клетку. Я сделал так, но он красит только первую и едет дальше пустой:
нц пока справа свободно
вправо
кц
закрасить
Как закрасить ВСЕ клетки по пути, а не одну в конце?
2 ответа
Ага, у тебя закрасить стоит ПОСЛЕ цикла, поэтому красится только финальная клетка. Надо закрашивать ВНУТРИ цикла, на каждом шаге:
использовать Робот
алг
нач
закрасить
нц пока справа свободно
вправо
закрасить
кц
кон
Разбор по шагам:
- сначала красим клетку, где стоим (стартовую),
- потом в цикле: шагнул вправо → сразу закрасил,
- и так пока справа не стена.
Важный момент — первое закрасить ДО цикла. Если его убрать, стартовая клетка останется белой, потому что цикл сначала делает вправо. Это классическая ошибка «закрасил всё кроме первой».
Порядок внутри цикла тоже важен: сначала шаг, потом закрасить (или наоборот, но тогда стартовую красишь отдельно — как у меня).
Правило простое: что хочешь делать на КАЖДОЙ клетке — пиши внутри нц ... кц. Что один раз — снаружи.
У тебя закрасить вылетело наружу, оттого и одна клетка. Закинь его в цикл и не забудь про стартовую клетку отдельно.