Примеры алгоритмических конструкций при работе с Роботом в программе «КуМир»

Задача: закрасить 3 клетки по прямой линии.

использовать Робот
алг ПрямаяЛиния
нач
    закрасить
    вправо
    закрасить
    вправо
    закрасить
кон

Пояснение: команды выполняются строго последовательно — Робот закрашивает текущую клетку, двигается вправо, снова закрашивает и т. д.

Задача: если справа свободно, то двигаться вправо и закрасить клетку, иначе просто закрасить текущую клетку.

использовать Робот
алг УсловноеДвижение
нач
    если справа свободно
        то вправо
            закрасить
        иначе закрасить
    все
кон

Пояснение: конструкция если... то... иначе... все позволяет Роботу принимать решения в зависимости от обстановки.

Задача: нарисовать горизонтальную линию из 5 закрашенных клеток.

использовать Робот
алг ЛинияИзПятиКлеток
нач
    нц 5 раз
        закрасить
        вправо
    кц
кон

Пояснение: цикл нц ... раз ... кц повторяет действия заданное число раз. Робот 5 раз закрашивает клетку и двигается вправо.

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

использовать Робот
алг ДвижениеДоСтены
нач
    нц пока справа свободно
        закрасить
        вправо
    кц
    закрасить  // закрашиваем последнюю клетку
кон

Пояснение: цикл нц пока ... кц выполняется, пока условие истинно. Робот останавливается, когда справа оказывается стена.

Задача: двигаться вниз, пока снизу есть свободное пространство, но сделать минимум один шаг.

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

Пояснение: конструкция нц ... кц_при гарантирует выполнение тела цикла хотя бы один раз, затем проверяет условие выхода.

Задача: создать квадрат 3×3 из закрашенных клеток.

использовать Робот
алг Квадрат3x3
нач
    цел i, j
    нц для i от 1 до 3
        нц для j от 1 до 3
            закрасить
            вправо
        кц
        вниз
        влево
        влево
        влево  // возвращаемся в начало строки
    кц
кон

Пояснение: внутренний цикл рисует одну строку, внешний — повторяет это 3 раза, перемещая Робота на следующую строку.

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

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

Пояснение: внутри цикла проверяется несколько условий, что позволяет Роботу адаптироваться к обстановке.

Задача: двигаться вправо, только если справа свободно и клетка не закрашена.

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

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

Краткие выводы

Ключевые особенности работы с алгоритмическими конструкциями в «КуМире»:

  • Линейные алгоритмы подходят для простых задач с фиксированным набором действий.
  • Ветвления (если... то... иначе... все) позволяют учитывать разные сценарии.
  • Циклы с параметром (нц N раз ... кц) удобны, когда известно число повторений.
  • Циклы с условием (нц пока ... кц, нц ... кц_при) адаптируются к обстановке.
  • Вложенные циклы решают задачи с двумерной структурой (например, рисование фигур).
  • Логические операции (и, или, не) расширяют возможности проверки условий.

Практическая работа

https://axelofan.github.io/kumir/

Задача №1

Линейный алгоритм

Необходимо перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 1-2
Задача №2
Циклический алгоритм

Необходимо провести Робота по лабиринту из начального положения (◊) в точку A.

(условия: должен быть написан один цикл!)

КуМир - Исполнитель Робот - провести Робота по лабиринту - 1
Задача № 3
Циклический алгоритм

Необходимо провести Робота вдоль коридора из начального положения (◊) до точки A, заглядывая в каждый боковой коридор.

КуМир - Исполнитель Робот - провести Робота - 10
(условия: должен быть написан один цикл!)

Задача №4

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

Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - исполнитель Робот - программа рисования узора - 1
(условия: должен быть написан один цикл!)
Задача №5

Вложенные циклы (цикл в цикле)

Необходимо провести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота - 1
Задание №6
(Условие: должен быть цикл в цикле)

Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 1

Задача№7

Необходимо провести Робота по коридору из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота - 3
Задача №8

Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 3

Задача №9

(Условия: используйте «Если»)

Необходимо провести Робота по коридору шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая при этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку располагаются произвольно по всей длине коридора. Коридор заканчивается тупиком. Коридор имеет два горизонтальных и диагональный участки в форме . Пример коридора показан на рисунке.