Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Сборная Домашка
+4

Программирование на алгоритмическом языке в кумире ОГЭ

Пожалуйста, помогите написать программу для робота! Робот находится в центре спирального лабиринта на бесконечном поле. Робот должен закрасить все клетки лабиринта и остановиться в произвольном месте. Алгоритм должен решать задачу для любого допустимого расположения стен.

По дате
По рейтингу
Аватар пользователя
Мудрец

Для написания такой программы на алгоритмическом языке Кумир можно использовать следующую стратегию: робот будет двигаться по спирали от центра к краям, закрашивая клетки. Если робот сталкивается со стеной, он должен повернуться и продолжить движение. Так как поле бесконечно и стены расположены спирально, робот всегда сможет найти путь для закраски.

Примерный алгоритм на языке Кумир может выглядеть так:

1234567891011121314151617
 алг 
нач 
  цикл пока свободно вперёд цикл 
    закрасить() 
    шаг() 
    если стена справа тогда 
      поворот налево() 
    иначе 
      поворот направо() 
      шаг() 
      если стена справа тогда 
        поворот налево() 
      конец если 
    конец если 
  конец цикла 
  закрасить() 
кон  

Здесь мы используем функции закрасить(), шаг(), поворот налево(), и поворот направо() как примитивы для управления роботом, а свободно вперёд и стена справа — для проверки условий. Конкретные названия команд могут отличаться в зависимости от используемой версии Кумир и наличия предопределенных процедур.

Данный алгоритм предполагает, что робот начинает в центре лабиринта и закраска происходит на каждом шаге. Если в языке Кумир другие команды для работы с роботом, необходимо соответственно изменить команды в программе.

Аватар пользователя
Ученик

так там по спирали идти надо что за глупый лабиринт