Ветвление в языке КУМИР

Хирьянов Тимофей Федорович

если-то-иначе-все

Общий вид команды:
если условие
  то серия 1
  иначе серия 2
все
Серия 2 вместе со служебным словом иначе может отсутствовать. В этом случае команда имеет вид:
если условие
  то серия 1
все
При выполнении команды если КуМир сначала проверяет условие, записанное между если и то. При соблюдении этого условия выполняется серия 1, в противном случае — серия 2 (если она есть), после чего КуМир переходит к выполнению команд, записанных после слова все.
Если условие не соблюдается, а серия 2 вместе с иначе отсутствует, то КуМир сразу переходит к выполнению команд, записанных после слова все.

Пример 1

если a<b
  то
    b:=b-a
    p:=p+q
  иначе
    a:=a-b
    q:=q+p
все

Пример 2 

если x > m
  то
    m := x
    n := n+1
все

Пример 3 (исполнитель Робот)

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

выбор-при-иначе-все

Общий вид команды:
выбор
  при условие 1 : серия 1
  при условие 2 : серия 2
  …
  при условие n : серия n
  иначе серия n+1
все
Ключевое слово иначе вместе с соответствующей серией команд может отсутствовать:
выбор
  при условие 1 : серия 1
  при условие 2 : серия 2
  …
  при условие n : серия n
все
КуМир сначала проверяет условие 1. Если оно соблюдается, то КуМир выполняет команды из серии 1, после чего переходит к выполнению команд, записанных после слова все. В противном случае КуМир делает то же самое с условием 2 и командами из серии 2 и т.д.
Команды, записанные после слова иначе, выполняются в том случае, когда не соблюдено ни одно из условий.
В команде выбор всегда выполняется не более одной серии команд, даже если несколько условий окажутся истинными. Выполнение команды выбор заканчивается после того, как найдено первое (по порядку следования) условие со значением да (и выполнена соответствующая серия команд).

Пример 1

выбор
  при a > 1: i := i + 1
  при a < 0: j := j - 1
  иначе t := i; i := j; j := t
все

Пример 2

выбор
  при a[i] > 1000:
    b[i] := 3
    c[i] := 3.141
  при a[i] > 100:
    b[i] := 2
    c[i] := 3.14
  при a[i] > 10:
    b[i] := 1
    c[i] := 3.1
все
В примере 2 при a[i]=1812 будут выполнены присваивания: b[i]:=3; c[i]:=3.141.

Пример 3 (исполнитель Робот)

выбор
  при сверху свободно: вверх
  при слева свободно: влево
  при снизу свободно: вниз
  при справа свободно: вправо
все

Комментариев нет:

Отправить комментарий