Как сделать лестницу в кумире

КУМИР и РОБОТ

РОБОТ

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

Как сделать лестницу в кумире

В меню Правка (рисунок справа) выделены основные команды, с помощью которых мы будем управлять РОБОТОМ.А ниже показано окно написания кода алгоритма.

Как сделать лестницу в кумире

В тексте задачи обязательно приводится рисунки начального состояния РОБОТА и состояния РОБОТА после выполнения кода алгоритма. Смотри ниже.

состояние РОБОТА после выполнения
алгоритма

Разберем этапы построения алгоритма передвижения РОБОТА (и необходимые действия РОБОТА):

1. Перемещение РОБОТА имеет два фрагмента:

а) перемещение по ступеньке с окраской ступени; б) подъем на следующую ступень.

2. Перемещение РОБОТА носит цикличный характер: повторяется столько раз, сколько ступеней имеет лестница. Но (!), по условию задачи нам неизвестно, сколько ступеней имеет лестница. Следовательно, мы не может указывать в алгоритме количество итераций (повторений), которые должен выполнять РОБОТ.

4. Выделим два фрагмента в действии РОБОТА: последовательность шагов

Как сделать лестницу в кумире

Для повторения последовательности команд можно использовать цикл ПОКА.

Также у РОБОТА есть команда закрасить, которая закрашивает клетку, в которой находится РОБОТ в настоящий момент.

Итак, на отрезке 1 у нас получаются следующие команды:

4.2. Когда же при перемещении РОБОТА он попадает в положение, когда справа стена, то ему надо выполнить команды для подъема на следующую ступеньку:

1. закрасить (так как он стоит на клетке ступень и эта клетка пока не закрашена);

2. (шаг) вверх (одна клетка высоты ступени);

3. (шаг) вверх (вторая клетка высоты ступени);

5. Объединяем команды РОБОТА участков 1 и 2:

Проверим, как выполняет РОБОТ написанный нами фрагмент алгоритма. Но сначала разберемся со средой КУМИР.

Как сделать лестницу в кумире

Как сделать лестницу в кумире

1. Откроем меню РОБОТ и выберем команду Сменить стартовую обстановку. Откроется окно редактирования стартовой обстановки РОБОТА, где мы должны воссоздать рисунок лестницы. Для создания стен щелкаем мышкой на разделительную линию между клетками. РОБОТА (белый ромб) мышкой перемещаем в начальную позицию. Размер поля ограничен, поэтому воссоздать полностью лестницу, как на бумаге, мы не сможем.

2. По окончании редактирования выполняем команду Обстановка\Сохранить как стартовую. Даем имя файлу-обстановке. Но в КУМИРе стартовая обстановка изменилась.

Демонстрация кода алгоритма (смотри файл медиа).

И наш код теперь выглядит так:

Посмотрите, как теперь выполняет алгоритм наш исполнитель РОБОТ:

Как видно из видеоролика, мы выполнили все условия задачи: РОБОТ красит все ступеньки не разбиваясь. И, что самое главное, алгоритм управления РОБОТ»ом рационален (оптимален).

Источник

Практическая работа по информатике. Исполнитель Робот

Как сделать лестницу в кумире

Исполнитель Робот

Среда программирования КуМир

Часто на уроках и в задании 20.1 ОГЭ по информатике требуется исполнителем «Робот» спускаться или подниматься по лестнице. Надо понимать, что спуск или подъем по лестнице осуществляется одним циклом. Как правило, чтобы проверить работоспособность алгоритма необходимо добавлять ступени на лестнице. Алгоритм должен выполнятся независимо от количества ступеней, например, как для двух ступеней, так и для двадцати.

ЗАДАЧА

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

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

Например, для приведенного выше рисунка Робот должен закрасить клетки:

Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого количества ступеней. При исполнении алгоритма Робот не должен разрушиться.

РЕШЕНИЕ

Данную задачу будем решать в среде программирования КуМир. Откроем программу и перейдем в меню Робот — > Редактировать обстановку

Строим лестницу. тЛевой кнопкой мыши щелкаем по стенкам клетки. Ромб (робот) перемещаем в нужное место, зажав левую кнопку мыши

Выходим из режима редактирования меню Робот — > Редактировать обстановку. Далее напишем на первой строчке команду «использовать Робот».

Сначала вспомним некоторые команды для исполнителя Робот.

Как сделать лестницу в кумиреКак сделать лестницу в кумире
начальное положение РОБОТА
№ п/пКомандаОбозначение
1нцначало цикла
2кцконец цикла
3закраситьзакрашиваетcя клетка
4вверх, вниз, влево, вправодвижение робота
5нач, конначало и конец программы

В задании сказано, что

Алгоритм должен решать задачу для произвольного размера поля и любого количества ступеней

Это означает, что Робот должен передвигаться с помощью цикла «Пока». Рассуждаем так: снизу под роботом стена, значит снизу не свободно. На 4 строчке редактора пишем команду

Внутри цикла необходимо последовательно выполнить команды:

Полностью готовая программа выглядит так:

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

Итак, алгоритм закрашивает клетки при любом количестве ступеней лестницы.

Как сделать лестницу в кумире

Как сделать лестницу в кумире

Как сделать лестницу в кумире

Как сделать лестницу в кумире

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Исполнение циклических алгоритмов на базе системы «Кумир»

Цели: сформировать умение записи, исполнения и отладки алгоритмов с использованием цикла пока; добиться понимания использования цикла пока; развивать умение анализировать.

Ученики должны знать: правила записи и исполнения цикла пока; свойства цикла пока.

Ученики должны уметь: использовать при составлении алгоритмов конструкцию цикла пока и записывать ее на языке Кумир, владеть методами отладки: по шагам, непрерывно.

Метод обучения: объяснительно-иллюстративный и репродуктивный (на этапе объяснения нового материала), репродуктивный с элементами проблемного (этап закрепления материала).

Обеспечение урока:

Ход урока

1. Объяснение нового материала.

В общем случае алгоритм должен быть универсальным, т.е., он не должен зависеть от расстояния между Роботом и стеной. Для этого в алгоритмическом языке есть специальная команда – цикл пока.

Общий вид цикла пока

В общем виде цикл пока записывается так:

Как сделать лестницу в кумире

При выполнении цикла компьютер повторяет следующие действия:

а) проверяет записанное после служебного слова пока условие;

б) если условие не соблюдается, то выполнение цикла завершается, и компьютер начинает выполнять команды, записанные после кц. Если же условие соблюдается, то компьютер выполняет тело цикла, снова проверяет условие и т.д.

Пример.

Как сделать лестницу в кумире

Как сделать лестницу в кумире

Метод отладки: по шагам.

Диалог Компьютера и Робота

Компьютер: снизу свободно?

Робот: смещается вниз в клетку Б.

Компьютер: снизу свободно?

Робот: смещается вниз в клетку В.

Компьютер: снизу свободно?

Робот: нет.

Так как Робот ответил нет, т.о. записанное после пока условие не соблюдается и выполнение цикла заканчивается.

Продемонстрировать в системе Кумир методы отладки: по шагам и непрерывно.

Тело цикла может не выполниться ни разу, если условие в цикле пока не соблюдается с самого начала. Например, если в алгоритме «вниз до стены» Робот на первый же вопрос «снизу свободно » ответит нет, то компьютер не вызовет команду «вниз» ни разу.

Зацикливание. Выполнение цикла пока может и не завершиться, если условие все время будет соблюдаться. Например, если ниже Робота никаких стен нет, то при выполнении предыдущего алгоритма, компьютер «зациклится», т.е. будет бесконечно спрашивать у Робота «снизу свободно», получать в ответ да и командовать «вниз».

2. Эксперименты с программой на примере исполнителя Робот.

Необходимо, в системе Кумир, предварительно сделать заготовки расположения Робота (файлы 1.fil-6.fil).

Упражнения.

Эксперименты с программой.

Задание 1. (Загрузить файл 1.fil)

Требуется перевести Робота из клетки А в клетку Б. Использовать цикл пока:

Как сделать лестницу в кумире

Как сделать лестницу в кумире

Задание 2. (Загрузить файл 2.fil)

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

Как сделать лестницу в кумире

Задание 3. (Загрузить файл 3.fil)

Робот находится в горизонтальном коридоре. Закрасить все клетки коридора:

Как сделать лестницу в кумире

Задание 4. (Загрузить файл 4.fil)

1. Переделайте алгоритм «закрасить ряд вправо и вернуться» используя в нем цикл:

Как сделать лестницу в кумире

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

Как сделать лестницу в кумире

Задание 5. (Загрузить файл 5.fil)

Составьте алгоритм для закраски всех клеток вокруг прямоугольной стены:

Как сделать лестницу в кумире

Задание 6. ( Загрузить файл 6.fil) (Из материалов экзамена 2009г.)

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

Как сделать лестницу в кумире

Задание 7. (Загрузить файл 6.fil) (Из материалов экзамена 2009 г.)

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

Как сделать лестницу в кумире

3. Закрепление. Вопросы:

Какие команды Компьютер будет давать Роботу при выполнении цикла:

а) нц пока клетка не закрашена

б) нц пока клетка закрашена

В ситуации, когда Робот стоит:

Расположение Робота показано на следующих рисунках:

Как сделать лестницу в кумире

Как будет выполняться цикл?

Как сделать лестницу в кумире

Домашнее задание. Определите значение переменной S после выполнения операторов:

Как сделать лестницу в кумире

Литература: А.Г.Кушниренко «Основы информатики и вычислительной техники».

Источник

Как сделать лестницу в кумире

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может.

У Робота есть девять команд. Четыре команды − это команды-приказы:

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

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

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

Ещё четыре команды − это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:

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

Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:

Здесь условие − одна из команд проверки условия.

Последовательность команд − это одна или несколько любых команд-приказов.

Например, для передвижения на одну клетку вправо, если справа нет стенки и закрашивания клетки, можно использовать такой алгоритм:

если справа свободно то

В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

нц пока справа свободно

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

Количество ступенек, ведущих вниз, и количество ступенек, ведущих вверх, неизвестно.

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

Как сделать лестницу в кумире

Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно под ступенями лестницы. Требуется закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок):

Как сделать лестницу в кумире

Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться.

Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена.

Это задание ещё не решено, приводим решение прототипа.

Выберите ОДНО из предложенных ниже заданий: 15.1 или 15.2.

15.1 Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды — это команды-приказы:

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

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

Ещё четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:

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

Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:

Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов.

Например, для передвижения на одну клетку вправо, если справа нет стенки и закрашивания клетки, можно использовать такой алгоритм:

если справа свободно то

В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

нц пока справа свободно

Выполните задание.
Как сделать лестницу в кумире

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

Напишите для Робота алгоритм, закрашивающий все клетки, примыкающие к вертикальным стенам справа. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *