Главная страница
Навигация по странице:

  • НАЧАЛО ПОКА вверх ПОКА вправо ПОКА вниз

  • ПОКА вверх

  • Сало. Выполнение алгоритмов для исполнителя


    Скачать 1.59 Mb.
    НазваниеВыполнение алгоритмов для исполнителя
    Дата22.01.2021
    Размер1.59 Mb.
    Формат файлаdoc
    Имя файлаege14.doc
    ТипДокументы
    #170407
    страница6 из 26
    1   2   3   4   5   6   7   8   9   ...   26

    Еще пример задания:





















    6



















    5



















    4



















    3



















    2



















    1

    A

    B

    C

    D

    E

    F



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

    вверх вниз влево вправо.

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

    сверху свободно снизу свободно

    слева свободно справа свободно
    Цикл ПОКА <условие> команда выполняется, пока условие истинно, иначе происходит переход на следующую строку. Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ уцелеет (не врежется в стену) и остановится в той же клетке, с которой он начал движение?

    1) 1 2) 2 3) 3 4) 0

    НАЧАЛО

    ПОКА <слева свободно> вверх

    ПОКА <сверху свободно> вправо

    ПОКА <справа свободно> вниз

    ПОКА <снизу свободно> влево

    КОНЕЦ



















































































































































    Решение:

    1. особенность этой задач в том, что РОБОТ проверяет стенку в одном направлении, а движется в другом

    2. рассмотрим первый цикл:

    ПОКА <слева свободно> вверх

    понятно, что при движении вверх РОБОТ остановится в первой же клетке, где слева будет стена

    1. рассуждая аналогично, находим, что во втором цикле при движении вправо РОБОТ останавливается в клетке, где есть стена сверху; в третьем цикле (движение вниз) РОБОТ останавливается в клетке, где есть стена справа;

    2. наконец, в четвертом цикле РОБОТ останавливается в клетке, где есть стена снизу; при этом он должен попасть обратно в исходную клетку, обозначенную на рисунке красной точкой;

    3. кроме этих четырех стенок, необходимо, чтобы коридор, выделенный на рисунке зеленым фоном, был свободен для прохода, иначе РОБОТ врежется в стенку

    4. теперь отметим на карте все клетки-кандидаты, где снизу есть стена:




















    6


















    5



















    4


















    3


















    2













    1

    A

    B

    C

    D

    E

    F






    1. при движении из клеток B5, D1, E1, E6, F1 и F3 РОБОТ врежется в стенку, потому что слева стены нет и условие «слева свободно» всегда истинно:


















      6


















      5



















      4


















      3


















      2













      1

      A

      B

      C

      D

      E

      F




    2. начав движение с клетки A1, C1 или C2, РОБОТ также врезается в стенку и разрушается:



















    6



















    5



















    4



















    3


















    2
















    1

    A

    B

    C

    D

    E

    F







    1. и только путь, начатый в клетке B1, приводит РОБОТА обратно в точку старта:



















    6



















    5



















    4



















    3



















    2


















    1

    A

    B

    C

    D

    E

    F






    1. таким образом, только клетка B1 удовлетворяет условию задачи, поэтому …

    2. правильный ответ – 1.
    1   2   3   4   5   6   7   8   9   ...   26


    написать администратору сайта