ВНИМАНИЕ! С 22 по 31 октября в Центре «Турбо» состоятся родительские собрания Подробнее
Toggle Bar

БЕСПЛАТНЫЕ УРОКИ. Базовая подготовка

Робот. Условный оператор "ЕСЛИ"

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

alt

Для решения этой задачи нам надо научить Робота выполнять разные действия в зависимости от окружающей обстановки. Это можно изобразить на схеме

alt

Словами это можно сформулировать так: если есть проход (условие выполняется), то выполни одну группу команд, если нет – выполни другие команды. В программе для этой цели используется специальный условный оператор если

Сад1

{

пока ( впереди_свободно )

{

  вперед(1);

  если ( слева_свободно )

     { /* войти в коридор */

      налево;
      вперед(1);
      посади;
      назад(1);
      направо;

     }

  иначе

    { посади; }

  }

}

Таким образом, мы определили два варианта действий Робота - первый работает тогда, когда обнаружен проход, а второй – когда справа стена.

Правила использования условного оператора

  1. Условный оператор состоит из двух частей; первая часть начинается ключевым словом если, после которого в скобках записывается условие.
  2. Если это условие верно (или истинно), то выполняется группа команд, стоящая ниже в фигурных скобках (блок-если).
  3. Вторая часть (блок-иначе) начинается со слова иначе и выполняется в том случае, когда условие в скобках ложно.
  4. Нельзя отделять блок-если  и блок-иначе, поскольку они составляют единый оператор.
  5. Условие ставится только в заголовке блока-если.
  6. Блок-иначе может отсутствовать, если он не нужен; в этом случае мы говорим, что условный оператор записан в сокращенной форме.
  7. Чтобы было удобнее разбираться в программе, используют отступы так же, как и в циклах: тело блока-если  и  блока-иначе сдвигается вправо на 2-3 символа.

Сокращенная форма

Немного изменим задачу – пусть теперь Роботу надо обрабатывать только по 1 клетке в начале каждого прохода. Таким образом, в блоке-иначе не осталось ни одной команды – если прохода нет, ничего делать не надо. Поэтому можно использовать сокращенную форму условного оператора – без второй части:

Сад2

{

пока ( впереди_свободно )

{

  вперед(1);

  если ( слева_свободно )

    {

      налево;
      вперед(1);
      посади;
      назад(1);
      направо;

    }

  }

}

Что такое сложные условия?

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

alt

Сначала можно сформулировать алгоритм на русском языке – иди вперед, пока не появится стена впереди. Если в какой-то момент справа от Робота стена И слева стена, надо посадить цветы в грядку.

В этом словесном алгоритмах мы объединяли логические команды Робота с помощью операции И, получив из двух простых условий одно сложное условие. То же самое можно делать и в программе:

Посадка

{

пока ( впереди_свободно ) 

  {

  вперед(1);

  если ( справа_стена И слева_стена )

    посади;

  }

}

Сложное условие – это условие, состоящее из двух или более простых условий, объединенных с помощью логических операций:

НЕ      отрицание

И         логическое умножение

ИЛИ   логическое сложение

Правила использования сложных условий

    1. Простейшими условиями являются логические команду исполнителей (например, слева_стена) и логические отношения между числами.
    2. >  5,    2+n < x

 

      >=       больше или равно    a >= 2* x+5

 

      <=       меньше или равно    c+2*d <= 5*v

 

      ==       равно  d = = 2+c

 

           не равно         a != b
  1. В условии “равно” ставится два знака равенства; чтобы не запутаться, надо запомнить, что если переменная изменяется (оператор присваивания), то надо ставить один знак “=“, а если не меняется (логическое отношение), то два.
  2. Сложные условия составляются из нескольких простых; простые условия объединяются с помощью логических операций.
  3. Операция "И" требует одновременного  выполнения двух условий, например:
    сверху_стена  И  снизу_стена
  4. Операция "ИЛИ" обозначается требует выполнения хотя бы одного из двух условий (или обоих вместе), например:
    сверху_стена  ИЛИ  снизу_стена
  5. Иногда удобно использовать логическую операцию “НЕ”, которая отрицает значение логического выражения, например условия
    a = a)
    означают одно и то же.
  6. Устанавливается такой приоритет (старшинство) логических отношений и операций:
    сначала выполняются операции в скобках, затем ...
    операции “НЕ”, затем ...
    логические отношения (>, =, <=, ==, !=), затем ...
    операции “И” и в последнюю очередь
    операции “ИЛИ”.

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

Использован материал из книги "Алгоритмы и исполнители", автор Поляков К.

Добавить комментарий:

Добавить комментарий

Защитный код
Обновить