← Все вопросы

кумир если то — робот должен закрашивать только клетки где снизу стена

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

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

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

КуМир ругается на если. Что не так?

2 ответа

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

Почти всё верно, просто у если в КуМире особый синтаксис: обязательно то и закрывающее всё. Без них среда и ругается.

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

Запомни шаблон:

если УСЛОВИЕ
  то
    команды
все

(пишут и всё и все — оба работают).

И обрати внимание: я добавил ещё одну проверку ПОСЛЕ цикла. Потому что цикл нц пока справа свободно останавливается у правой стены, не зайдя в последнюю клетку как следует — последнюю клетку часто надо обработать отдельно. Проверь свою задачу, нужна ли она тебе.

Условия Робота: снизу стена, сверху свободно, слева стена, справа свободно и т.д. — все комбинации направление + стена/свободно.

3

Главная причина ошибки — забыл то и все. В КуМире это строго:

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

Без всё он не понимает где кончается тело условия.

Ваш ответ

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