КуМир: команды (операторы)

Содержание

Введение
Область программы
Условные операторы
Условия
Если
Выбор
Циклы
Для
Повторить n раз
Пока
Счетчик

Введение

Условные обозначения:
/ — вводится одно из нескольких возможных значений, [ ] — необязательные параметры,
<информация, которая должна быть введена пользователем или программой>.

Текущая версия описания ориентирована исключительно на работу исполнителей (Робота для ОГЭ), в связи с чем ограничена! Любые попытки изучать реальное программирование в КуМир не могут рассматриваться в качестве приемлемых.


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


Область программы

Начало и конец программного модуля обозначаются определенным образом

алг
нач
	Программный код (совокупность команд)
кон

Слово алг определяет начало каждой программы (алгоритма), могущее, в том числе, содержать некоторые параметры запуска. Каждый файл программы может состоять из множества алгоритмов, но только первый из них будет запускаться на выполнение. Остальные могут быть вызваны из него или других алгоритмов, по сути представляя собой функции, определяемые пользователем. Только перед первым алг могут быть вставлены определения общих переменных и присвоение им значений.

нач указывает на то, что после него начинаются непосредственно команды.

Ключевое слово кон означает конец программного модуля.

Условные операторы

Условные операторы или иначе операторы ветвления в КуМир представлены двумя вариантами: если-то-иначе-все и выбор-при-иначе-все.

Условия

Позволю себе сентенцию, что в описании не дано никаких толковых разъяснений по этому ключевому вопросу.


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


Если...

Данный оператор является аналогом if в стандартных языках программирования.

Общий синтаксис:

если <условие>
  то
	Команды1
  [иначе
	Команды2]
все

При достижении слова если программа анализирует условие. Только в случае его истинности (оно соблюдается), выполняются команды после слова то (Команды1). Блок иначе не является обязательным, но при его наличии и ложности условия, выполняется он (Команды2).

Слово все является обязательным и завершает набор команд условного оператора. После его анализа и исполнения (или ложности условия) происходит переход к командам после все.

Выбор...

Данный оператор является аналогом case в стандартных языках программирования.

Общий синтаксис:

выбор
  при <условие 1 : серия 1
  при <условие 2 : серия 2
  ...
  при <условие n : серия n
  [иначе серия n+1]
все

При достижении слова выбор программа анализирует условие Х. Если оно истинно, то выполняется соответствующая ему серия команд, после чего осуществляется переход к все и завершение конструкции с выполнением последующих команд.

В случае отсутствия соответствия со всеми условиями будет выполняется серия для факультативного слова иначе, если она была создана.

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

Однако последнее не совсем верно, так как при выполнении будет проанализировано (и может быть выполнено) каждое условие если, а для выбор исполнится только одно

Например, выбор удобно использовать для анализа числовых диапазонов (<0, >0...) или наличия сразу нескольких стен вокруг Робота.

Циклы

Здесь описаны только наиболее востребованные конструкции. За полными сведениями обращайтесь к описанию языка от разработчиков.

Общий синтаксис цикла:

нц <вид цикла и условие>
	<тело цикла (набор повторяемых команд)>
кц

Цикл для

Повторяется некоторое количество раз с наличием внутреннего счетчика и определенным его шагом (аналог For).

Общий синтаксис цикла:


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


Цикл повторить n раз

Является упрощенным аналогом цикла Для.

Общий синтаксис цикла:

нц <целое число> раз
 ...
кц

Таким образом, вместо <целое число> нужно подставить необходимое значение, а в теле цикла записать нужные команды. Этот набор последовательно повторит их указанное число раз.

Следующий пример сформирует закрашенную полосу в 10 клеток, тогда как в обычном случае потребовалось бы 20 команд.

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

Цикл пока

Повторяется до тех пор, пока условие будет соблюдаться (аналог While).

Следующий пример проведет Робота под неопределенным разрывом горизонтальной стены и остановит там, где начнется продолжение стены.

нц пока сверху свободно
  вправо
кц

Если на поле нет горизонтальных преград, то программа приведет Робот к верхней границе поля.

нц пока сверху свободно
  вверх
кц

Следующая же программа приведет Робот к левой границе поля, если на пути нет вертикальных преград.

нц пока слева свободно
  влево
кц

Во многих сложных заданиях это может потребоваться.

Счетчик

Есть такая неприятная история, что данное понятие вообще не упоминается, а без него невозможно выполнить ряд заданий


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!



Copyright © 1993–2024 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.