Читайте также:
|
|
Задача
Экспериментальная модель робота установлена на прямом рельсе с корзинами и может перемещаться по нему влево и вправо. Робот также может проверять наличие апельсинов в корзине, брать в клешню апельсин (и только один) и класть его в другую корзину. Надо разработать язык управления роботом и выполнить с помощью него следующие задачи:
1. Переложить все апельсины из первого ящика во второй.
2. Робот стоит у пустого первого ящика. Во всех остальных ящиках лежит различное количество апельсинов, причем точно известно, что в одном из ящиков лежит ровно один апельсин (в остальных, кроме пустого первого, больше). Робот должен найти его и перенести в первый ящик.
Цель работы
Закрепить понятие императивного языка программирования, потренироваться в написании собственного императивного языка.
Описание работы
Любая программа на императивном языке программирования состоит из набора инструкций и функций, последовательное выполнение которых приводит к требуемому результату. Для решения поставленных задач требуется разработать команды для робота.
Список инструкций, выполняемых роботом:
· LEFT(<число>) – робот перемещается на заданное число ящиков влево
· RIGHT(<число>) - робот перемещается на заданное число ящиков вправо
· INBEGINING – робот перемещается в начало рельса к первому ящику
· PUT – робот кладет апельсин в ящик, напротив которого находится
· TAKE – робот берет апельсин в клешню
· BEGIN – робот начинает работу
· END – робот завершает работу
· IF (<условие>) THEN {<блок_инструкций_1>} ELSE {<блок_инструкций_2>} – робот проверяет выполнение условия в круглых скобках (например, проверяет наличие апельсинов в ящике) и выполняет блок инструкций 1, если верно, и выполняет блок инструкций 2 в противном случае
· WHILE (<условие>) DO {<блок_инструкций>} – робот будет выполнять блок инструкций, пока будет выполняться условие в круглых скобках (например, пока проверка апельсинов в текущем ящике будет давать положительный результат)
Для проверки наличия апельсинов в ящике будет использоваться функция CHECK, которая может принимать значения TRUE, если апельсины есть, и FALSE в противном случае. В данных задачах это будет условием начала выполнения каких-либо инструкций.
Решение задачи 1
В данной задаче, используется всего 2 ящика, первый наполнен апельсинами, второй – пустой. Робот первоначально стоит в начале рельса у ящика 1, второй ящик находится справа от первого. Чтобы переложить все апельсины из первого ящика во второй, робот должен:
1) Проверить, если ли еще апельсины в первом ящике;
2) Если есть, то взять апельсин, переместиться вправо на один ящик, положить апельсин и переместиться влево на один ящик;
3) Выполнять действия 1-2 до того момента, когда после проверки не обнаружит, что апельсины в первом ящике кончились;
4) При завершении работы выключиться.
Пример программы выполнения данной задачи:
BEGIN
WHILE (CHECK=1) DO //робот проверяет наличие апельсинов
{ // и выполняет действия в {}, если результат проверки истина
TAKE
RIGHT(1)
PUT
LEFT(1)
}
END
Дата добавления: 2015-11-04; просмотров: 35 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Доклад Гороховой Светланы Витальевны | | | Мой личный опыт |