Язык программирования кумир синтаксис

Исполнитель Робот

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

Бесплатно скачать КуМир для Windows можно на официальном сайте разработчика данного ПО, для этого пройдите по ссылке https://www.niisi.ru/kumir/dl.htm .

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

При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо → и закрашивает клетку, в которой находится .

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

вверх — Escape, Up (стрелка вверх)

вниз — Escape, Down (стрелка вниз)

влево — Escape, Left (стрелка влево)

вправо — Escape, Right (стрелка вправо)

закрасить — Escape, Space (пробел)

Обратите внимание, что набирать нужную комбинацию горячих клавиш нужно не привычным нам способом! Мы привыкли нажимать клавиши одновременно, а здесь их нужно нажимать последовательно . К примеру, чтобы ввести команду вверх, нужно нажать Escape, отпустить ее и после этого нажать стрелку вверх. Это нужно помнить.

Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится, и выполнение программы прервётся.

Другие четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:

Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать.

Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:

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

В системе КуМир цикл » n раз » записывается при помощи следующей конструкции:

нц n раз

n — число повторений цикла.

использовать Робот

алг задание

нц 5 раз

В результате работы программы исполнитель Робот пройдёт вправо на 1 клетку и закрасит её. За т ем повторит те же действия ещё 4 раза. Таким образом, Робот переместится вправо на 5 клеток и закрасит их.

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

Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно).

На языке КуМир цикл с предусловием имеет следующий вид:

Т еперь давайте решим следующую задачу для Робота — нарисовать вертикальную линию от левой до правой границы поля использую цикл с условием. Изначально Робот находится в левом верхнем углу.

Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:

«Пока справа свободно делай шаг вправо и закрашивай клетку»

В результате Робот пробежит по всем клеткам вправо и будет их закрашивать до тех пор, пока справа не окажется стена.

Исходный код нашей программы для Робота будет примерно такой:

использовать Робот

нц пока справа свободно

Пример №1: На бесконечном поле есть горизонтальная и вертикальная стены. Левый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной непосредственно над горизонтальной стеной у её правого конца.

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

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

Детализация плана действий Робота.

  1. Закрасить все клетки слева до прохода в горизонтальной стене .
  2. Перейти через проход до горизонтальной стены .
  3. Двигаться влево до вертикальной стены и закрашивать все клетки, расположенные непосредственно выше горизонтальной стены .
  4. Закрасить все клетки справа от вертикальной стены до прохода .
  5. Перейти через проход до вертикальной стены .
  6. Закрасить все клетки справа от вертикальной стены .

Исходный код нашей программы для Робота будет примерно такой:

использовать Робот

нц пока снизу стена

нц пока снизу не стена

нц пока слева не стена

нц пока слева стена

нц пока слева не стена

нц пока слева стена

Источник

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

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

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

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

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

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

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

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

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

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

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

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

Условия

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

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

Если.

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

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

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

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

Выбор.

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

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

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

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

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

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

Циклы

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

Цикл для

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

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

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

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

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

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

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

Цикл пока

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

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

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

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

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

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

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

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

Счетчик

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

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

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

Источник

Читайте также:  Этапы решения задачи линейного программирования симплекс методом
Оцените статью