Решение задач. Исполнитель Робот. Циклы Исполнитель робот ветвление работа в среде кумир
В данной разработке разбираются задчи для исполнителя Робот, которые вызывают затруднения у многих школьников - это задачи с различными лесенками.
Просмотр содержимого документа
«Исполнитель Робот. Решение задач.»
Задача 1.
Задача 2.
Задача 3.
Исходное поле Робота:
Сначала идет горизонтальная стена, ее длина неизвестна. Далее идет лесенка вниз, высота ступеньки – 1 клетка, длина ступеньки – 2 клетки. Количество ступенек неизвестно. Далее идет лесенка вверх, высота ступеньки – 1 клетка, длина ступеньки – 2 клетки. Количество ступенек неизвестно. Необходимо закрасить клетки над ступеньками обоих лесенок. Как показано на 2 рисунке.
использовать
Робот
|
У исполнителя Робот есть система команд. Рассмотрим простые команды Робота . Всего их 5:
вверх - переместить Робота на одну клетку вверх
вниз - переместить Робота на одну клетку вниз
влево - переместить Робота на одну клетку влево
вправо - переместить Робота на одну клетку вправо
закрасить
Задание 1. Нарисовать квадрат со стороной 3 клетки.
Запускаем Кумир
Удаляем символ «|» и называем наш алгоритм «Квадрат» (рядом со служебным словом алг пишем Квадрат )
закрасить
закрасить
закрасить
Запустить программу и посмотреть что получилось. Для запуска нажимаем F9 или же кнопку на панели инструментов Выполнить программу
Если такое окно Робота у вас не появилось, то на панели инструментов щелкните «Показать окно Робота » или в меню Робот выберите пункт «Показать окно Робота «. Продолжаем дальше:
вниз
закрасить
вниз
закрасить
Потом пойдем влево, закрашивая нижнюю границу квадрата
влево
закрасить
влево
закрасить
У нас осталась одна незакрашенная клетка. Закрасим ее
вверх
закрасить
Все готово! В итоге наша программа выглядит так:
использовать Робот
алг Квадрат
закрасить
закрасить
закрасить
закрасить
закрасить
закрасить
закрасить
закрасить
Задание 2 .Используя простые команды Робота, написать программу, рисующую букву П, Р, Ш, Щ, Т,Н.
Цикл с условием.
У исполнителя Робот есть несколько условий: сверху свободно снизу свободно слева свободно справа свободно сверху стена снизу стена
слева стена справа стена
Задание 3 .
Нарисовать вертикальную линию от левой до правой границы поля использую цикл с условием. Изначально Робот находится в левом верхнем углу.
Исходный код нашей программы для Робота будет примерно такой:
использовать Робот
алг
нач
закрасить
нц пока справа свободно
вправо
закрасить
кц
кон
В результате выполнения этой программы мы увидим вот такую картину:
Задание 4 .Написать программу, которая будет делать рамку вокруг рабочего поля Робота независимо от его размера. Конечно же с использованием циклов с условием. В итоге должно получиться так:
Программа Кумир
Исполнитель Робот
Кто такой исполнитель Робот?
- Представьте себе клетчатое поле (как лист из тетради в клеточку) на котором находится некий объект, который мы назовем Робот. Используя специальные команды, мы можем этим Роботом управлять - перемещать его по клеткам, закрашивать клетки. И в большинстве случаев наша задача будет заключаться в том, чтобы написать такую программу для Робота, выполняя которую он будет закрашивать определенные клетки.
Настройка среды Кумир для исполнителя Робот
- Запущенная программа Кумир выглядит так.
Стартовая обстановка Робота
- Перед началом выполнения программы необходимо задать исполнителю Робот стартовую обстановку. Это значит установить Робота в нужную позицию, расставить стены, закрасить нужные клетки и т. п. Этот шаг очень важен. Если его проигнорировать, то программа может работать неправильно или вообще завершится аварийно.
Нажмите на Редактировать обстановку
Исполнитель Робот. Простые команды.
- вверх
- вниз
- влево
- вправо
- закрасить
Результат выполнения этих команд понятен из их названия:
- вверх - переместить Робота на одну клетку вверх
- вниз - переместить Робота на одну клетку вниз
- влево - переместить Робота на одну клетку влево
- вправо - переместить Робота на одну клетку вправо
- закрасить - закрасить текущую клетку (клетку в которой находится Робот).
Пример алгоритма
- Сначала необходимо написать фразу:
- использовать Робот
Если известно сколько клеток нужно закрасить, то алгоритм решения будет следующим!
Задание №1
- Напишите программу для решения следующей задачи, если известно сколько клеток нужно закрасить
Циклы
- 1. Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать.
нц раз
…
кц
Здесь мы должны указать количество повторений (число) и команды, которые будут повторяться. Команды, которые повторяются в цикле называют телом цикла.
Задание №2
- Напишите программу для решения следующей задачи, используя цикл со счетчиком
- 2. Цикл с условием- пока условие истинно-цикл выполняется, если ложно-то не выполняется
- У исполнителя Робот есть несколько условий
сверху свободно
снизу свободно
слева свободно
справа свободно
сверху стена
снизу стена
слева стена
справа стена
- Можно использовать частицы: НЕ, И, ИЛИ
Структура цикла с условием
нц пока справа свободно
вправо
закрасить
кц
Задание №3
- Напишите программу для решения следующей задачи, используя цикл с условием:
Задание №4
- Напишите программу для решения следующей задачи, используя циклы с условием:
Решение задач:
- 2. Робота надо перевести из стартового положения в конечное, закрашивая стенки
Задание №5
- На бесконечном поле имеется горизонтальная стена. Длина стены неизвестна. Робот находится сверху от стены в левом ее конце. На рисунке приведено расположение робота относительно стены (робот обозначен буквой «Р»):
Ответ на задание №5
- нц пока не (снизу свободно)
закрасить
Начало цикла (нц) и условие (пока не(снизу свободно)) - пишутся на одной строчке.
Конструкция если
- сверху свободно снизу свободно слева свободно справа свободно
- Эти команды можно использовать вместе с условием «если» , имеющим следующий вид:
- если условие то
- последовательность команд
- Например, для передвижения на одну клетку вправо, если справа нет стенки, и закрашивания клетки можно использовать такой алгоритм:
- если справа свободно то
- вправо
- закрасить
Задание №7
Длины стен неизвестны.
Ответ на задание №7
пока не сверху свободно
закрасить
вправо
пока сверху свободно
вправо
пока справа свободно
закрасить
вправо
пока не справа свободно
закрасить
вниз
пока справа свободно
вниз
пока не справа свободно
закрасить
вниз
Задание №8
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №8
пока сверху свободно
пока не сверху свободно
закрасить
пока сверху свободно
пока не сверху свободно
закрасить
пока не снизу свободно
закрасить
пока снизу свободно
пока не снизу свободно
закрасить
Задание №9
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №9
пока снизу свободно
пока не снизу свободно
закрасить
пока снизу свободно
пока не снизу свободно
закрасить
пока не сверху свободно
закрасить
пока сверху свободно
пока не сверху свободно
закрасить
Задание №10
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №10
пока слева свободно
пока не слева свободно
закрасить
пока слева свободно
пока не слева свободно
закрасить
пока не справа свободно
закрасить
пока справа свободно
пока не справа свободно
закрасить
Задание №11
Длины стен неизвестны.
В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны.
Ответ на задание №11
пока не сверху свободно
пока не сверху свободно
закрасить
пока снизу свободно
пока не сверху свободно
закрасить
Задание №12
На бесконечном поле имеется лестница. Сначала лестница спускается вниз справа налево, затем спускается вниз слева направо. Высота каждой ступени - одна клетка, ширина - две клетки. Робот находится справа от верхней ступени лестницы. Количество ступенек, ведущих влево, и количество ступенек, ведущих вправо, неизвестно. На рисунке указан один из возможных способов расположения лестницы и Робота (Робот обозначен буквой «Р»).
Ответ на задание №12
Двигаемся вниз под лестницей справа налево, пока не дойдем до стыка лестниц:
нц пока снизу свободно
вниз
влево
влево
Двигаемся вниз до конца спускающейся лестницы, закрашивая нужные клетки на пути:
нц пока не слева свободно
закрасить
вправо
закрасить
вправо
вниз
Ответ на задание №13
нц пока слева свободно
закрасить
влево
вверх
нц пока не слева свободно
закрасить
вверх
Задание №14
На бесконечном поле имеется прямоугольник, ограниченный стенами. Длины сторон прямоугольника неизвестны. Робот находится внутри прямоугольника. На рисунке указан один из возможных способов расположения стен и Робота (Робот обозначен буквой «Р»).
Ответ на задание №14
пока справа свободно
вправо
пока сверху свободно
вверх
закрасить
нц пока слева свободно
влево
закрасить
Ответ на задание №15
пока справа свободно
закрасить
вправо
пока снизу свободно
закрасить
вниз
закрасить
пока не (снизу свободно)
влево
вниз
пока не (справа свободно)
закрасить
вниз
закрасить
вправо
пока не (сверху свободно)
закрасить
вправо
Ответ на задание №16
пока не справа свободно
закрасить
вниз
закрасить
вправо
пока не сверху свободно
закрасить
вправо
пока сверху свободно
вверх
пока справа свободно
закрасить
вправо
пока не справа свободно
закрасить
вниз
ПРАКТИЧЕСКАЯ РАБОТА № 3 в ПРОГРАММЕ «КУМИР»
СРЕДА «РОБОТ»
Цель: Научится писать программы с циклом пока и ветвлением если-то-иначе для робота.
Справка
1. Цикл пока создается структурами, например:
нц пока слева свободно | нц пока справа свободно |
нц пока снизу свободно | нц пока сверху свободно |
2. Ветвление создается структурой если <условие>
то <действие>
иначе <действие>
Условиями могут быть: радиация , температура, стена и положение на поле
Задание № 1 МИННОЕ ПОЛЕ.
1. Создать предлагаемую обстановку. По правой кнопке мыши установить клетку с радиацией равной или большей 50, помечая клетку буквой латинского алфавита . Сохранить как MinPol | 2. Дописать программу для робота, который проходя по полю, закрашивает клетки с теми метками, в которых радиация превышает значение 50. |
Справка : цикл пока создается структурами
Задание № 2: ПИТСТОП.
1. Создать предлагаемую обстановку. 3. Написать часть программы. | 3. Дописать программу так, чтобы закрасить клетки, как показано в образце |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Задание № 3: ОПАСНОСТЬ.
1. Создать предлагаемую обстановку (робот в левом верхнем углу, клетка с радиацией – метка «буква», клетка с температурой – метка «цифра») 3. Написать часть программы. | 3. Дописать программу так, чтобы робот реагировал (смещался) на клетки с радиацией (клетка с буквой) и закрашивал клетки с температурой (клетка с цифрой): а – 1 – b – 2 – с–3 |
И сегодня поговорим о циклах. Давайте разберемся, что же такое цикл и как научить выполнять циклические алгоритмы нашего Робота.
Итак, что такое цикл ? Представьте, что мы находимся на уроке физической культуры и перед нами стоит задача сделать 7 приседаний . Это задание можно оформить в виде линейного алгоритма и тогда оно будет выглядеть примерно так:
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
сделай приседание
Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний ? Конечно проще и правильнее. Это и есть цикл . Вы можете сами вспомнить примеры циклов из жизни — их довольно много.
Таким образом линейный алгоритм , где повторяются одни и те же команды мы можем оформить в виде циклического алгоритма — примерно так:
повторяй 7 раз
сделай приседание
конец цикла
Вот так, на придуманном нами языке мы оформили цикл. У исполнителя Робот тоже есть возможность записывать циклы. Причем, циклы бывают разные . Тот вариант, который мы только что рассмотрели называется цикл со счетчиком или цикл с параметром .
Виды циклов.
Цикл со счетчиком.
Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать. В примере выше с приседаниями именно такой случай.
Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:
нц <количество повторений > раз
<команда 1>
<команда 2>
…
<команда n>
Здесь мы должны указать количество повторений (число) и команды, которые будут повторяться. Команды, которые повторяются в цикле называют телом цикла .
Давайте рассмотрим это на примере.
Изначально Робот находился в левой верхней клетке.
Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
закрасить
вправо
Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.
Так вот, наша программа с циклом будет выглядеть так:
использовать Робот
нц 7 раз
закрасить
вправо
Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!
В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.
Цикл с условием.
При решении задачи 19 ГИА по информатике с Роботом использовать цикл со счетчиком не получится. Так как там поле, как правило, бесконечное и стены не имеют конкретной длины. Поэтому мы не сможем определить количество повторений для цикла со счетчиком. Но не беда — нам поможет цикл с условием .
Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:
пока не устал
сделай приседание
конец цикла
Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий
сверху свободно
снизу свободно
слева свободно
справа свободно
сверху стена
снизу стена
слева стена
справа стена
Но в условии задачи 19 ГИА указаны только первые 4. Так что будем пользоваться только ими.
Теперь давайте решим следующую задачу для Робота — нарисовать вертикальную линию от левой до правой границы поля использую цикл с условием. Изначально Робот находится в левом верхнем углу.
Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:
«Пока справа свободно делай шаг вправо и закрашивай клетку »
В результате Робот пробежит по всем клеткам вправо и будет их закрашивать до тех пор, пока справа не окажется стена.
Исходный код нашей программы для Робота будет примерно такой:
использовать Робот
нц пока справа свободно
вправо
закрасить
В результате выполнения этой программы мы увидим вот такую картину: