Компьютерные исполнители


ВВЕДЕНИЕ * ЧЕРТЁЖНИК * РОБОТ * РИСОВАЛЬЩИК * АБОРИГЕН * КЛАДОИСКАТЕЛЬ * ПОКУПАТЕЛЬ * ХОДОК * ССЫЛКИ * КАРТА


    Робот

    Среда исполнителя

Среда исполнителя Робот

    Исполнителя Робот можно представить как некое шагающее устройство, способное перемещаться в четырёх направлениях: вверх, вниз, влево, вправо.
     Средой обитания исполнителя Робот является клеточное поле. Исполнитель на поле изображается кругом и может передвигаться по клеткам поля вверх, вниз, влево, вправо; закрашивать клетки; собирать или расставлять объекты.      При загрузке исполнителя Робот его местоположение в верхнем левом углу. Но начальное положение исполнителя можно изменить (загрузив из файла соответствующую обстановку).

    На поле могут быть размещены объкты:

  • горизонтальные и вертикальные линии (одного из 8 цветов);
  • клетки (одного из 16 цветов);
  • мешки, сундуки, кувшины;
  • камни.

Среда исполнителя Робот      Среда исполнителя Робот без объектов кажется скучной и простой. Расставив объекты на поле, появляется, кажется, безграничная возможность составления задач разных типов алгоритмов. Перемещаться Роботу по полю, где нет ничего, слишком однообразно. Куда интересней, когда на поле будут преграды в виде линий или камне, а может там где-нибудь размещены метки в виде закрашенных клеток или объектов (кувшина, сундука и мешка). Кое-что Робот может разместить на поле в процессе выполнения алгоритма (закрашенные клетки или предметы(сундук, мешок, кувшин), если ранее он собрал эти предметы. А кое-что на поле нужно разместить другим способом. Горизонтальные линии, вертикальные линии и камни могут быть поставлены на поле Робота только визуально с помощью команды Расстановка / Добавить объект. Мешки, сундуки, кувшины и клетки могут быть расставлены как визуально, так и программно. На одной клетке (как закрашенной, так и не закрашенной) может размещаться только один объект. Все объекты могут перемещаться с одного места на другое (при нажатой левой клавише мыши) или копироваться с помощью значка Знак копирования, который появляется, если объект выделяется при нажатой клавише Shift. Для избавления от знака копирования необходимо нажать правую кнопку мыши.
    На поле могут быть размещены один или несколько исполнителей, которые можно добавить с помощью значка копирования, как и другие объекты, или с помощью команды Расстановка / Добавить исполнителя. Для избавления от знака копирования исполнителей необходимо также нажать правую кнопку мыши.

    Система команд исполнителя

Вверх

Вверх

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

Вниз

Вниз

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

Влево

Влево

  Робот перемещается в клетку, левую относительно текущей.

Вправо

Вправо

  Робот перемещается в клетку, правую относительно текущей.

Взять

Взять

  Робот берёт предмет из текущей клетки .

Положить(1)

Положить(1)

  Робот кладёт в текущую клетку заданный в скобках предмет. Предметы нумеруются так: 1- сундук, 2- кувшин, 3- мешок. .

Закрасить(n)

Закрасить(n)

  Робот закрашивает текущую клетку указанным в скобках цветом.

Номера цветов клеток

1Чёрный9Тёмно-синий
2Тёмно-синий10Синий
3Тёмно-зелёный11Зелёный
4Тёмно-голубой12Голубой
5Тёмно-красный13Красный
6Тёмно-сиреневый14Сиреневый
7Болотный15Жёлтый
8Светло-серый16Белый

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

    Линейные алгоритмы

     Линейным называют такой алгоритм, в котором команды выполняются одна за другой в порядке их записи.
    ПРИМЕР 1.Cоставим алгоритм, выполнив который Робот соберёт все объекты, а клетки, на которых они лежали, закрасит разными цветами.
Начальная обстановка Конечный результат

  Программа Пример_1
  Вниз Вниз Вниз
  Вправо Вниз Взять
  Закрасить(2)
  Вверх Вправо
  Взять
  Закрасить(3)
  Вправо Вправо
  Вниз Взять
  Закрасить(4)
  Конец_Программы

    ПРИМЕР 2.Cоставим алгоритм, выполнив который Робот соберёт все объекты, а клетки, на которых они лежали, закрасит.
Начальная обстановка Конечный результат

  Программа Пример_2
  Вниз Вправо Вверх Вверх
  Влево Взять Закрасить(11)
  Вправо Вправо Вниз Вниз
  Вниз Взять Закрасить(11)
  Вниз Взять Закрасить(11)
  Влево Влево Влево
  Влево Взять
  Закрасить(11)
  Конец_Программы


Пример 3.     
ПРИМЕР 3.Cоставим алгоритм, выполнив который Робот закрасит клетки и нарисует цветок.
  Программа Пример_3
  Вниз Закрасить(12) Вправо Закрасить(14) Вверх
  Закрасить(12) Вниз Вниз Закрасить(12)
  Вверх Вправо Закрасить(12) Влево
  Вниз Вниз Закрасить(3) Вниз Закрасить(3)
  Вниз Закрасить(3) Вправо Вверх Закрасить(3)
  Конец_Программы

    

Задания для самостоятельного выполнения

Задание 1.
    Задание 1.Cоставьте алгоритм перемещения Робота в закрашенную клетку.
    Задание 2.Cоставьте алгоритм, в результате исполнения которого Робот закрасит клетки, на которых стоят кувшины, и соберёт кувшины.
Задание 3.     Задание 3.Cоставьте алгоритм, выполнив который Робот закрасит клетки, чтобы получился рисунок.

    Вспомогательные алгоритмы

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

    ПРИМЕР 4.
Cоставим алгоритм, в результате выполнения которого Робот нарисует рисунок по образцу.
 
Программа Пример_4
фигура
фигура
фигура
фигура
Конец_Программы
Программа фигура
Вниз
Закрасить(3)
Вниз
Закрасить(4)
Вправо
Закрасить(5)
Вверх
Закрасить(6)
Вправо
Вправо
Конец_Программы


    ПРИМЕР 5.
Cоставим алгоритм, с помощью которого Робот соберёт все объекты на поле и закрасит клетки, на которых они стояли.
Программа Пример_5
Вниз
предметы
предметы
предметы
Конец_Программы
Программа предметы
Взять Закрасить(3) Вниз Взять Закрасить(4) Вправо Взять Закрасить(5) Вниз Взять Закрасить(6) Влево Взять Закрасить(7) Вниз Взять Закрасить(8) Вправо Вправо Вправо Вправо Вверх Вверх Вверх Конец_Программы

    

Задания для самостоятельного выполнения


    Задание 4.Cоставьте алгоритм, в результате которого Робот соберёт все клады.
Задание 5.     Задание 5.Cоставьте алгоритм, в результате исполнения которого Робот закрасит соответствующие клетки и соберёт все клады.

    Задание 6.Cоставьте алгоритм, в результате исполнения которого Робот закрасит соответствующие клетки и соберёт все клады.

    Алгоритмы с повторением

     Конструкция повторения- это часть алгоритма, в которой некоторую последовательность действий надо повторить несколько раз, пока выполняется условие. Такую многократно повторяющуюся часть алгоритма называют циклом.
    Алгоритм, в котором используется конструкция повторения, называется алгоритмом с повторением.
    При составлении алгоритмов с повторениями используется команда повторения:
Повторять_Пока (условие)
(действие 1)
(действие 2)
...
(действие n)
Завершить

    Команды-вопросы исполнителя

Вверху_Линия

Вверху_Линия

  Робот проверяет, есть ли вверху линия.

Внизу_Линия

Внизу_Линия

  Робот проверяет, есть ли внизу линия.

Слева_Линия

Слева_Линия

  Робот проверяет, есть ли слева линия.

Справа_Линия

Справа_Линия

  Робот проверяет, есть ли справа линия.

Вверху_Пусто

Вверху_Пусто

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

Внизу_Пусто

Внизу_Пусто

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

Слева_Пусто

Слева_Пусто

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

Справа_Пусто

Справа_Пусто

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

Вверху_До_Края

Вверху_До_Края

 Данная команда возвращает количество клеток до верхнего края текущей клетки.
  Программа кол_во_клеток
  Описание
  а: Целый
  Конец_Описания
   а:=Справа_До_Края
  Вывод(а)
  Конец_Программы

Внизу_До_Края

Внизу_До_Края

 Данная команда возвращает количество клеток до нижнего края текущей клетки.

Слева_До_Края

Слева_До_Края

 Данная команда возвращает количество клеток до левого края текущей клетки.

Справа_До_Края

Справа_До_Края

 Данная команда возвращает количество клеток до правого края текущей клетки.

Цвет_Клетки

Цвет_Клетки

 Данная команда возвращает номер цвета текущей клетки.

Что_Это

Что_Это

 Данная команда возвращает номер предмета, лежащего в текущей клетке.

Всего_Предмета

Всего_Предмета

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

летка_Закрашена

Клетка_Закрашена

 Данная команда проверяет, закрашена ли текущая клетка.

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


ПРИМЕР 6.

Cоставим алгоритм, выполнив который Робот переместится в закрашенную клетку.
Пример 6.    
Программа Пример_6
   Повторять_Пока не Клетка_Закрашена
   Вниз
   Завершить
   Конец_Программы
ПРИМЕР 7.
Cоставим алгоритм, выполнив который Робот переместится до конца линии.
Пример 7.    Программа Пример_7
   Повторять_Пока Вверху_Линия
   Вправо
   Завершить
   Конец_Программы

ПРИМЕР 8.

Cоставим алгоритм, выполнив который Робот переместится в закрашенную клетку.

   Программа Пример_8
   Повторять_Пока не Внизу_Линия
   Вниз
   Завершить
   Повторять_Пока Внизу_Линия
   Влево
   Завершить
   Повторять_Пока не Клетка_Закрашена
   Вниз
   Завершить
   Конец_Программы

ПРИМЕР 9.

Cоставим алгоритм, выполнив который Робот закрасит все клетки вокруг прямоугольника.

   Программа Пример_9
    Вправо Вправо
    Повторять_Пока не Внизу_Линия
    Вниз Завершить
    Закрасить(11)
    Повторять_Пока Внизу_Линия
    Вправо Закрасить(11) Завершить
    Вниз Закрасить(11)
    Повторять_Пока Слева_Линия
    Вниз Закрасить(11) Завершить
    Влево Закрасить(11)
    Повторять_Пока Вверху_Линия
    Влево Закрасить(11) Завершить
    Вверх Закрасить(11)
    Повторять_Пока Справа_Линия
    Вверх Закрасить(11) Завершить
    Конец_Программы

    

Задания для самостоятельного выполнения


    Задание 7.Cоставьте алгоритм, в результате которого Робот закрасит все клетки возле границ поля.

    Задание 8.Cоставьте алгоритм перемещения Робота в закрашенную клетку.
    Задание 9.Cоставьте алгоритм, в результате исполнения которого Робот переместиться в закрашенную клетку.

    Алгоритмы с ветвлениями

     Конструкция ветвления- это часть алгоритма, в которой в зависимости от выполнения или невыполнения некоторого условия выполняется либо одна, либо другая последовательность действий.
    Алгоритм, в котором используется конструкция ветвления, называется алгоритмом с ветвлением.
    При составлении алгоритмов с ветвлениями используется команда если:
Если (условие)
    То (действие 1)
    Иначе (действие 2)
Конец_Если

     Выше указанная конструкция называется полной,если в конструкции нет слова иначе, то конструкция называется не полной.

ПРИМЕР 10.

Cоставим алгоритм, выполнив который Робот закрасит клетки, у которых справа линия, одним цветом, а клетки, у которях слева линия, - другим цветом.
Пример 10.    
Программа Пример_10
   Повторять_Пока Внизу_Пусто
   Если Справа_Линия
     То Закрасить(11)
      Иначе
     Если Слева_Линия
      То Закрасить(12)
      Конец_Если
   Конец_Если
   Вниз
   Завершить
   Конец_Программы

ПРИМЕР 11.

Cоставим алгоритм, выполнив который Робот соберёт все мешки и заменит ими сундуки.


Программа Пример_11
   Вправо
   Повторять_Пока Справа_Пусто
   Взять Вправо Завершить Вверх
   Повторять_Пока Слева_Пусто
   Взять Влево Завершить
   Повторять_Пока не Вверху_Линия
   Если Что_Это =1 То Взять
   Положить(3)
    Конец_Если
   Вверх Завершить
   Повторять_Пока Вверху_Линия
   Если Что_Это =1
    То Взять Положить(3)
   Конец_Если
   Вправо Завершить
   Повторять_Пока Вверху_Пусто
   Если Что_Это =1
    То Взять Положить(3)
    Конец_Если
   Вверх Завершить
   Повторять_Пока Справа_Пусто
   Если Что_Это =1
    То Взять Положить(3)
    Конец_Если
   Вправо Завершить
   Конец_Программы

ПРИМЕР 12.

Cоставим алгоритм подсчёта всех сундуков на поле.

Пример 12.

Программа Пример_12
Описание к: Целый Конец_Описания
к:=0
Повторять_Пока не Справа_Линия
Если Что_Это =1 То к:=к+1 Конец_Если
Вправо Завершить
Повторять_Пока не Внизу_Линия
Если Что_Это =1 То к:=к+1 Конец_Если Вниз Завершить
Повторять_Пока Слева_Пусто
Если Что_Это =1 То к:=к+1 Конец_Если
Влево Завершить
Вывод(к)
Конец_Программы

ПРИМЕР 13.

Cоставим алгоритм подсчёта всех мешков и кувшинов на поле.

Пример 13.

Программа Пример_13
Описание к: Целый Конец_Описания
к:=0
Повторять_Пока не Внизу_Линия
Вниз Завершить
Повторять_Пока Внизу_Линия
Если (Что_Это =2) или (Что_Это =3)
То к:=к+1 Конец_Если
Вправо Завершить
Вниз
Повторять_Пока Слева_Пусто
Если (Что_Это =2) или (Что_Это =3)
То к:=к+1 Конец_Если
Влево
Завершить
Вывод(к)
Конец_Программы

    

Задания для самостоятельного выполнения

Задание 10.    Задание 10. Cоставьте алгоритм, в результате которого Робот закрасит все клетки вокруг линии, где они ещё не закрашены.
Задание 11     Задание 11.Cоставьте алгоритм подсчёта всех кувшинов.
Задание 12.     Задание 12.Cоставьте алгоритм подсчёта всех сундуков и мешков.
Задание 13.     Задание 13.Cоставьте алгоритм подсчёта количества всех сундуков, мешков и кувшинов.

    


ВВЕДЕНИЕ * ЧЕРТЁЖНИК * РОБОТ * РИСОВАЛЬЩИК * АБОРИГЕН * КЛАДОИСКАТЕЛЬ * ПОКУПАТЕЛЬ * ХОДОК * ССЫЛКИ * КАРТА *


   А.А.Синица saassl@tut.by

Назад

Далее