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

Обновлено: 05.07.2024

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

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

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

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

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

  • система Кумир;
  • интерактивная доска;
  • мультимедийный проектор;
  • карточки-задания.

Ход урока

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

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

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

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

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

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

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

Пример.

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

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

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

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

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

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

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

Робот: нет.

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

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

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

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

Упражнения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. в закрашенной клетке,
  2. в не закрашенной?

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

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

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


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

Содержимое разработки

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


Кто такой исполнитель Робот?

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

Настройка среды Кумир для исполнителя Робот.


Запущенная программа Кумир выглядит так.


Первым делом мы должны раскомментировать первую строку нашей программы, убрав символ |

Таким образом, программа станет выглядеть так:

использовать Робот

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

Стартовая обстановка Робота

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

Что такое стартовая обстановка? Наш Робот находится в некой среде — это клетчатое поле, размер которого известен. Так же на этом поле могут находится стены и закрашенные клетки, а сам Робот может находится в любой клетке. Так вот — стартовая обстановка задает положение Робота на поле и расположение всех остальных элементов — стен, закрашенных клеток. И перед тем, как писать алгоритм для Робота необходимо задать стартовую обстановку. Насколько это важно давайте рассмотрим на примере. Пусть есть две стартовые обстановки:


Стартовая обстановка 1


Стартовая обстановка 2

Отличаются они только тем, что в стартовой обстановке 2 справа от Робота находится стена.

Если наша программа начнется с команды, которая переместит Робота на одну клетку вправо (о простых командах Робота), то в первом случае (стартовая обстановка 1) Робот выполнит эту команду, а во втором программа завершится аварийно, так как Робот не может ходить сквозь стены. Получается, что одна и та же программа в первом случае работает, а во втором приводит к ошибке. Именно поэтому так важно задавать стартовую обстановку для Робота.

Как задать стартовую обстановку?

Запустив среду Кумир в меню Инструменты выбираем пункт Редактировать стартовую обстановку Робота



Откроется окно с синим фоном. Это и есть стартовая обстановка Робота. И мы ее можем изменить.

По-умолчанию, размер окна 10 на 15 клеток. Если нам необходимо изменить количество строк и столбцов, то щелкаем Обстановка - Новая обстановка и задаем необходимые значения



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

чтобы добавить/удалить стену, щелкаем левой кнопкой мыши по границе клетки.

чтобы закрасить/очистить клетку, щелкаем по ней левой кнопкой мыши

чтобы добавить или убрать точку в клетку щелкаем по клетке, удерживая клавишу Ctrl

После того, как мы задали нужную стартовую обстановку, ее необходимо сохранить (Обстановка - Сохранить или Обстановка - Сохранить как). После этого закрываем окно Обстановка и в основном окне программы выбираем Робот - Сменить стартовую обстановку



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



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

Исполнитель Робот. Простые команды.

У нашего Робота тоже есть система команд. Сегодня мы рассмотрим простые команды Робота. Всего их 5:

вверх

влево

вправо

закрасить

Результат выполнения этих команд понятен из их названия:

вверх — переместить Робота на одну клетку вверх

вниз — переместить Робота на одну клетку вниз

влево — переместить Робота на одну клетку влево

вправо — переместить Робота на одну клетку вправо

закрасить — закрасить текущую клетку (клетку в которой находится Робот).

Эти команды можно писать с клавиатуры, а можно использовать горячие клавиши (нажав их команды будут вставляться автоматически):

вверх — Escape, Up (стрелка вверх)

вниз — Escape, Down (стрелка вниз)

влево — Escape, Left (стрелка влево)

вправо — Escape, Right (стрелка вправо)

закрасить — Escape, Space (пробел)

Обратите внимание, что набирать нужную комбинацию горячих клавиш нужно не привычным нам способом! Мы привыкли нажимать клавиши одновременно, а здесь их нужно нажимать последовательно.

Теперь мы готовы написать первый алгоритм для Робота. Предлагаю начать с простого — нарисуем квадрат со стороной 3 клетки. Поехали!

Запускаем Кумир, настраиваем его. Можно начинать писать программу? Конечно нет! Мы же не задали стартовую обстановку! Делаем это. Предлагаю использовать вот такую:


Вот теперь все готово. Начинаем писать программу. Пока она выглядит так



Предлагаю рисовать квадрат, двигаясь по часовой стрелке. Для начала закрасим текущую клетку, дав команду закрасить. Потом делаем шаг вправо и опять закрашиваем клетку. И еще раз шаг вправо и закрасить.


Попробуем запустить программу и посмотреть что же получилось. Для запуска нажимаем F9 или же кнопку на панели инструментов


В результате мы должны увидеть вот такую картину


Теперь мы будем двигаться вниз и закрашивать правую сторону квадрата:

Потом пойдем влево, закрашивая нижнюю границу квадрата

У нас осталась одна незакрашенная клетка. Закрасим ее

Все готово! В итоге наша программа выглядит так:

использовать Робот

алг Квадрат

А результат ее работы вот так


Итак, сегодня мы с вами написали программу, используя простые команды Робота. Рекомендую попрактиковаться самостоятельно — придумать себе задание и написать программу. Это могут быть самые различные фигуры, узоры, буквы. К примеру, попробуйте написать программу, рисующую букву П, Р, Ш, Щ, М. А если получится и захотите поделиться — комментируйте и прикрепляйте результат к комментарию.

Исполнитель Робот. Циклы.

Итак, что такое цикл? Представьте, что мы находимся на уроке физической культуры и перед нами стоит задача сделать 7 приседаний. Это задание можно оформить в виде линейного алгоритма и тогда оно будет выглядеть примерно так:

Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний? Конечно проще и правильнее. Это и есть цикл. Вы можете сами вспомнить примеры циклов из жизни — их довольно много.

Таким образом линейный алгоритм, где повторяются одни и те же команды мы можем оформить в виде циклического алгоритма — примерно так:

Вот так, на придуманном нами языке мы оформили цикл. У исполнителя Робот тоже есть возможность записывать циклы. Причем, циклы бывают разные. Тот вариант, который мы только что рассмотрели называется цикл со счетчиком или цикл с параметром.

Виды циклов. Цикл со счетчиком.

Цикл со счетчиком применяется когда заранее известно сколько повторений необходимо сделать. В примере выше с приседаниями именно такой случай.

Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:

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

Давайте рассмотрим это на примере.

Закрасим 7 клеток, как на рисунке. Рекомендую почитать про стартовую обстановку Робота и про его простые команды.


Изначально Робот находился в левой верхней клетке.

Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.

Так вот, наша программа с циклом будет выглядеть так:

использовать Робот

нц 7 раз

закрасить

вправо

Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!

В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.

Цикл с условием.

Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:

пока не устал

сделай приседание

конец цикла

Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий

сверху свободно

снизу свободно

слева свободно

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

сверху стена

снизу стена

слева стена

справа стена

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

Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:

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

Исходный код нашей программы для Робота будет примерно такой:

использовать Робот

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

вправо

закрасить

В результате выполнения этой программы мы увидим вот такую картину:


Как видим, не хватает только закрашенной первой клетки. Для этого перед циклом необходимо выполнить команду закрасить.


Для закрепления прошу написать программу, которая будет делать рамку вокруг рабочего поля Робота независимо от его размера. Конечно же с использованием циклов с условием. В итоге должно получиться так:



-75%

Исполнитель "робот" в КуМире — это программа, написанная в программной среде КуМир.

В 1970 году академик Ершов А.П. разработал специальный язык для реализации различных алгоритмов, который был назван КуМир. На сегодняшний день КуМир является программой, которая может свободно распространяться и имеет различные модификации для разных операционных систем, включая Linuх и Windоws.

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

Запустив программу КуМир, мы попадаем в окно, предназначенное для набора программы робота.

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

Обстановка старта. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Обстановка старта. Автор24 — интернет-биржа студенческих работ

Исполнитель Робот работает в определённом пространстве, представляющем из себя прямоугольник, состоящий из набора квадратных клеток. В межклеточном пространстве возможно расположение стен. Обстановка, с внутренним расположением Робота, определяется как текущая обстановка Робота. Есть также понятие стартовой обстановки, которая используется при программных действиях Робота. Робот способен перемещаться по полю и окрашивать различные клетки. Робот не имеет возможности пройти через стену, но способен проверить наличие вблизи него такой стены. Роботу не разрешается выходить за границы определённого прямоугольника, задающего поле.

Готовые работы на аналогичную тему

Вид обстановки в текущий момент времени всегда целиком виден в рабочем поле наблюдательного окна Робота. Ниже приведён пример возможного вида текущей обстановки в наблюдательном окне.

Пример вида текущей обстановки. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Пример вида текущей обстановки. Автор24 — интернет-биржа студенческих работ

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

Стартовая обстановка

Назначить стартовую обстановку возможно следующими вариантами:

  1. Путём загрузки стартовой обстановки из заранее сформированного файла с расширением .fill.
  2. Путём редактирования уже имеющейся стартовой обстановки при помощи программы редактирования стартовой обстановки. Далее необходимо выполнить сохранение обстановки в файл или прямо её использовать в программе.
  3. Сформировать свою стартовую обстановку.

Редакция обстановки. Автор24 — интернет-биржа студенческих работ

Рисунок 4. Редакция обстановки. Автор24 — интернет-биржа студенческих работ

Чтобы начать формирование новой стартовой обстановки, следует сначала определить размеры формы (число строк от одного до десяти и число столбцов от одного до шестнадцати). После этого откроется новая стандартная форма. Сформированную новую стартовую обстановку необходимо сохранить в файл формата.fill, который в дальнейшем можно применять как стартовую обстановку.

Сохранение. Автор24 — интернет-биржа студенческих работ

Рисунок 5. Сохранение. Автор24 — интернет-биржа студенческих работ

Порядок действий при формировании программы Робот в КуМире

Чтобы создать программу исполнителя Робот на алгоритмическом языке КуМир, надо выполнить следующие действия:

Тестирование программы на ошибки

Пример написания программы

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

Пример написания программы. Автор24 — интернет-биржа студенческих работ

Рисунок 6. Пример написания программы. Автор24 — интернет-биржа студенческих работ

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

ЗАДАЧА

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

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

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

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

исполнитель робот лестница результат конечный результат

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

РЕШЕНИЕ

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

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

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

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

исполнитель робот команда использовать робот

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

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

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

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

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

Пути движения робота

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

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

Исполнитель Робот итоговый результат

Исполнитель Робот итоговый результат

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

Посчитать количество отрицательных элементов массива

Посчитать количество отрицательных элементов массива Среда программирования КуМир На данном уроке посчитаем количество отрицательных

ОГЭ по информатике задание 16

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

Читайте также: