Программа Кумир
Исполнитель Робот
Кто такой исполнитель Робот?
- Представьте себе клетчатое поле (как лист из тетради в клеточку) на котором находится некий объект, который мы назовем Робот. Используя специальные команды, мы можем этим Роботом управлять — перемещать его по клеткам, закрашивать клетки. И в большинстве случаев наша задача будет заключаться в том, чтобы написать такую программу для Робота, выполняя которую он будет закрашивать определенные клетки.
Настройка среды Кумир для исполнителя Робот
- Запущенная программа Кумир выглядит так.
Стартовая обстановка Робота
- Перед началом выполнения программы необходимо задать исполнителю Робот стартовую обстановку. Это значит установить Робота в нужную позицию, расставить стены, закрасить нужные клетки и т. п. Этот шаг очень важен. Если его проигнорировать, то программа может работать неправильно или вообще завершится аварийно.
Нажмите на Редактировать обстановку
- Перенесите Робота в нужное место, установите стены и укажите клетки, которые необходимо закрасить:
Исполнитель Робот. Простые команды.
- вверх
- вниз
- влево
- вправо
- закрасить
Результат выполнения этих команд понятен из их названия:
- вверх — переместить Робота на одну клетку вверх
- вниз — переместить Робота на одну клетку вниз
- влево — переместить Робота на одну клетку влево
- вправо — переместить Робота на одну клетку вправо
- закрасить — закрасить текущую клетку (клетку в которой находится Робот).
Пример алгоритма
- Сначала необходимо написать фразу:
- использовать Робот
Если известно сколько клеток нужно закрасить, то алгоритм решения будет следующим!
Задание №1
- Напишите программу для решения следующей задачи, если известно сколько клеток нужно закрасить
Циклы
- 1. Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать.
нц раз
…
кц
Здесь мы должны указать количество повторений (число) и команды, которые будут повторяться. Команды, которые повторяются в цикле называют телом цикла.
Пример для цикла со счетчиком
Задание №2
- Напишите программу для решения следующей задачи, используя цикл со счетчиком
- 2. Цикл с условием- пока условие истинно-цикл выполняется, если ложно-то не выполняется
- У исполнителя Робот есть несколько условий
сверху свободно
снизу свободно
слева свободно
справа свободно
сверху стена
снизу стена
слева стена
справа стена
- Можно использовать частицы: НЕ, И, ИЛИ
Структура цикла с условием
нц пока справа свободно
вправо
закрасить
кц
Пример цикла с условием
Задание №3
- Напишите программу для решения следующей задачи, используя цикл с условием:
Задание №4
- Напишите программу для решения следующей задачи, используя циклы с условием:
Решение для задачи №4
Пример задачи
Решение задач:
- 2. Робота надо перевести из стартового положения в конечное, закрашивая стенки
Ответы
Задание №5
- На бесконечном поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится сверху от стены в левом ее конце. На рисунке приведено расположение робота относительно стены (робот обозначен буквой «Р»):
Ответ на задание №5
- нц пока не (снизу свободно)
вверх
закрасить
вниз
вправо
кц
Начало цикла (нц) и условие (пока не(снизу свободно)) — пишутся на одной строчке.
Задание №6
Конструкция если
- сверху свободно снизу свободно слева свободно справа свободно
- Эти команды можно использовать вместе с условием «если» , имеющим следующий вид:
- если условие то
- последовательность команд
- все
-
- Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм:
- если справа свободно то
- вправо
- закрасить
- все
Задание №7
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №7
нц
пока не сверху свободно
закрасить
вправо
кц
нц
пока сверху свободно
вправо
кц
нц
пока справа свободно
закрасить
вправо
кц
нц
пока не справа свободно
закрасить
вниз
кц
нц
пока справа свободно
вниз
кц
нц
пока не справа свободно
закрасить
вниз
кц
Задание №8
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №8
нц
пока сверху свободно
вверх
кц
нц
пока не сверху свободно
закрасить
влево
кц
нц
пока сверху свободно
влево
кц
нц
пока не сверху свободно
закрасить
влево
кц
вверх
вправо
нц
пока не снизу свободно
закрасить
вправо
кц
нц
пока снизу свободно
вправо
кц
нц
пока не снизу свободно
закрасить
вправо
кц
Задание №9
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №9
нц
пока снизу свободно
вниз
кц
нц
пока не снизу свободно
закрасить
влево
кц
нц
пока снизу свободно
влево
кц
нц
пока не снизу свободно
закрасить
влево
кц
вниз
вправо
нц
пока не сверху свободно
закрасить
вправо
кц
нц
пока сверху свободно
вправо
кц
нц
пока не сверху свободно
закрасить
вправо
кц
Задание №10
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №10
нц
пока слева свободно
влево
кц
нц
пока не слева свободно
закрасить
вниз
кц
нц
пока слева свободно
вниз
кц
нц
пока не слева свободно
закрасить
вниз
кц
влево
вверх
нц
пока не справа свободно
закрасить
вверх
кц
нц
пока справа свободно
вверх
кц
нц
пока не справа свободно
закрасить
вверх
кц
Задание №11
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №11
нц
пока не сверху свободно
влево
кц
вправо
нц
пока не сверху свободно
закрасить
вправо
кц
влево
нц
пока снизу свободно
вниз
кц
вправо
вниз
влево
нц
пока не сверху свободно
закрасить
влево
кц
Задание №12
На бесконечном поле имеется лестница. Сначала лестница спускается вниз справа налево, затем спускается вниз слева направо. Высота каждой ступени — одна клетка, ширина — две клетки. Робот находится справа от верхней ступени лестницы. Количество ступенек, ведущих влево, и количество ступенек, ведущих вправо, неизвестно. На рисунке указан один из возможных способов расположения лестницы и Робота (Робот обозначен буквой «Р»).
Ответ на задание №12
Двигаемся вниз под лестницей справа налево, пока не дойдем до стыка лестниц:
нц пока снизу свободно
вниз
влево
влево
кц
Двигаемся вниз до конца спускающейся лестницы, закрашивая нужные клетки на пути:
нц пока не слева свободно
закрасить
вправо
закрасить
вправо
вниз
кц
Задание №13
Ответ на задание №13
нц пока слева свободно
закрасить
влево
кц
вверх
нц пока не слева свободно
закрасить
вверх
кц
Задание №14
На бесконечном поле имеется прямоугольник, ограниченный стенами. Длины сторон прямоугольника неизвестны. Робот находится внутри прямоугольника. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).
Ответ на задание №14
нц
пока справа свободно
вправо
кц
нц
пока сверху свободно
вверх
кц
закрасить
нц пока слева свободно
влево
кц
закрасить
Задание №15
Ответ на задание №15
нц
пока справа свободно
закрасить
вправо
кц
нц
пока снизу свободно
закрасить
вниз
кц
закрасить
нц
пока не (снизу свободно)
влево
кц
вниз
нц
пока не (справа свободно)
закрасить
вниз
кц
закрасить
вправо
нц
пока не (сверху свободно)
закрасить
вправо
кц
Задание №16
Ответ на задание №16
нц
пока не справа свободно
закрасить
вниз
кц
закрасить
вправо
нц
пока не сверху свободно
закрасить
вправо
кц
нц
пока сверху свободно
вверх
кц
нц
пока справа свободно
закрасить
вправо
кц
нц
пока не справа свободно
закрасить
вниз
кц
Задание №17
Задание №18