Как в кумире сделать стены
Добавил пользователь Евгений Кузнецов Обновлено: 21.08.2024
Знакомство с программой Кумир осваение азов программирования.
В ней учащиеся могут получить практические навыки при создании и отладке алгоритма, работая с такими исполнителями, как Робот, Чертёжник, Водолей, Кузнечик,Черепашка.
Цель разработки: изучить возможности программирования на примере конкретного исполнителя Робот с использованием среды КУМИР; дать практические навыки работы с исполнителем.
Вложение | Размер |
---|---|
metod_razrabotka_robot1.doc | 642.5 КБ |
Презентация с заданиями и решениями | 2.09 МБ |
Предварительный просмотр:
Методическая разработка по информатике.
Автор: Григорьева Ю.А.,
Цель разработки : изучить возможности программирования на примере конкретного исполнителя Робот с использованием среды КУМИР; дать практические навыки работы с исполнителем.
Методическая разработка составлена для проведения уроков информатики Практика на компьютере : работа с учебным исполнителем алгоритмов; составление линейных, ветвящихся и циклических алгоритмов управления исполнителем; составление алгоритмов со сложной структурой; использование вспомогательных алгоритмов (процедур, подпрограмм).
Учащиеся должны знать:
- что такое исполнитель; СКИ Робота, среду исполнителя Робот;
- что такое алгоритм ; в чем состоят основные свойства алгоритма;
- способы записи алгоритмов: блок-схемы, учебный алгоритмический язык; основные алгоритмические конструкции: следование, ветвление, цикл; структуры
- алгоритмов; ⇒ назначение вспомогательных алгоритмов; технологии построения сложных алгоритмов:
Учащиеся должны уметь:
- понимать описания алгоритмов на учебном алгоритмическом языке;
- выполнить трассировку алгоритма для известного исполнителя;
- составлять линейные, ветвящиеся и циклические алгоритмы управления исполнителя Робот; выделять подзадачи; определять и использовать вспомогательные алгоритмы.
Занятие 1 (2 часа) Урок 1.
Исполнитель Робот. Система команд исполнителя.
2.Разбор типичных алгоритмов Робота.
Рассмотрим описание исполнителя.
Среда исполнителя : Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки.
СКИ Робота : простые команды: вверх, вниз, влево, вправо, закрасить.
Команды логические: (проверки условия)
сверху свободно снизу свободно
слева свободно справа свободно.
Логические связки: И,НЕ, ИЛИ:
Пример:(Не слева свободно) или (не справа свободно)
Команда ветвления : команда цикла:
если условие то нц пока условие
серия команд серия команд
(В КИМах 2009 года команды Робота отличались от привычных детям, что приводило к путанице : )
Команда ветвления : команда цикла:
если условие то нц пока условие делать
серия команд серия команд
Общий вид окна программы Кумир. Графическая среда Робота:
В КИМах демонстрационного варианта 2010 года формат команд изменен на привычный
Порядок создания алгоритма:
1.Командами Инструменты -Редактировать стартовую обстановку нарисовать на поле Робота стены и установить Робота в начальное положение.
2.Командами Робот- Сменить стартовую обстановку сохранить новую обстановку.
3.Командами Вставка- Использовать Робот указать исполнителя.
4.В окне документа записать алгоритм, используя меню Вставка.
5.Командами Выполнение –выполнить непрерывно (или по шагам) запустить алгоритм.
6.Рассмотреть результат выполнения алгоритма и при необходимости произвести его отладку.
Занятие 1 (2 часа) Урок 2.
Задания: 1.Робот в произвольной точке поля. Закрасить клетку сверху, снизу и справа от исходного положения.
- Робот в произвольной точке поля. Передвинуть Робот на 4 клетки вправо, закрасив их.
- Создайте новую стартовую обстановку, нарисовав на поле квадрат со стороной 4 клетки. Сохраните обстановку как стартовую.
- Создайте новую стартовую обстановку, нарисовав на поле коридор с проходами в стенах. Сохраните обстановку как obst2.fil. Смените стартовую обстановку на вновь созданную.
Занятие 2 (2 часа) Урок 1.
Тема : Ветвление и последовательная детализация алгоритма.
Разбор задач КИМов с использованием исполнителя Робот.
если не снизу свободно
если не снизу свободно
если не снизу свободно
если не снизу свободно
если не снизу свободно
если не снизу свободно
Пр. раб. №14. Составление и отладка алгоритмов ветвления
Задания. См. Приложение.
Занятие 3. Циклические алгоритмы. Урок 1-2
Цель: раскрыть сущность понятия цикла в алгоритмах, показать формы записи циклов алгоритмах, дать навыки создания и записи циклических алгоритмов.
Пр. раб. №15. Составление и отладка циклических алгоритмов
1.Составьте алгоритм, закрашивающий все внутренние клетки, прилегающие к стене.
нц пока справа свободно
нц пока снизу свободно
нц пока не снизу свободно
2.Составить алгоритм, закрашивающий все клетки между Роботом и стеной. Расстояние до стены неизвестно.
нц пока справа свободно
3.Составить алгоритм, закрашивающий все клетки, находящиеся между двумя стенами.
нц пока (не сверху свободно) или (не снизу свободно)
если (не сверху свободно) и (не снизу свободно)
4.Составить алгоритм, закрашивающий все клетки вокруг прямоугольной стены.
нц пока не справа свободно
нц пока не снизу свободно
нц пока не слева свободно
нц пока не сверху свободно
нц пока не снизу свободно
нц пока слева свободно
нц пока не слева свободно
нц пока сверху свободно
нц пока не сверху свободно
Занятие 4 Урок 1
Цель: ввести понятие основного и вспомогательного алгоритма; объяснить правила использования вспомогательного алгоритма; разобрать примеры алгоритмов с использованием вспомогательного.
1.Ввод новых терминов (основного и вспомогательного алгоритма, вызова) и объяснение новых понятий.
2.Разбор примеров решения задач с применением вспомогательного алгоритма.
При решении некоторых задач удобно разбить их на более мелкие подзадачи, каждую из которых можно оформит как самостоятельный алгоритм. В этом случае сначала составляется так называемый основной алгоритм, в котором для решения подзадач используются вызовы вспомогательных алгоритмов, которые дописываются позднее. Такой способ решения называется методом последовательного уточнения. Он позволяет работать над проектом группе программистов, каждый при этом решает свою подзадачу.
В процессе решения задачи каждый вспомогательный алгоритм может при необходимости быть разбит на более мелкие вспомогательные алгоритмы.
Команда выполнения вспомогательного алгоритма называется вызовом и записывается в теле основного алгоритма.
Один и тот же алгоритм может рассматриваться как основной и вспомогательный по отношению к другим алгоритмам. В алгоритмическом языке сначала записывается основной алгоритм, ниже подряд записываются вспомогательные.
Робот находится в верхнем левом углу поля. Стен и закрашенных клеток нет. Составить алгоритм, с использованием вспомогательного, рисующий четыре крестика на одной горизонтали. Конечное положение Робота может быть произвольным.
Разбор на доске:
Задача2. Робот находится в верхнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает в шахматном порядке квадрат 8 х 8. Конечное положение Робота может быть произвольным.
Занятие 4 Урок 2
Цель : привить практические навыки построения алгоритмов методом последовательного уточнения.
1.Задание полностью проходит за ПК. Учащиеся получают задания и выполняют их в программной среде Кумир. Результаты Работы сохраняются в виде файлов для последующей проверки.
Задача1 . Робот находится в нижнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает 6 вертикальных полос одинаковой длины в 6 клеток. Конечное положение Робота может быть произвольным.
Задача2 .Используя вспомогательные, составьте алгоритм для закрашивания клеток, образующих число 1212.
Домашнее задание : Придумайте алгоритм, рисующий следующее изображение: Для решения задачи примените два вспомогательных алгоритма.
Занятие 5 Урок 1-2
Цель: проверить полученные знания по созданию и умению анализировать алгоритмы в программной среде Кумир.
Задания для контрольной работы делятся по уровням сложности и включает в себя 3 задачи с исполнителем Робот (1 и 2 задача –на ветвление и циклы, 3 задача с- на использование вспомогательного алгоритма.) Тексты заданий приводятся в приложении.
Исходные и конечные обстановки и созданные алгоритмы записываются в виде файла.
Оценка выставляется соответственно уровню сложности задания. Ученик вправе сам выбрать тип задания.
Язык КУМИР - универсальный язык программирования, его прототипом послужил "школьный язык программирования", разработанный А.П. Ершовым в первой половине 80-х годов ХХ века.
Система КУМИР позволяет создавать, отлаживать и выполнять программы. Несложные программы можно начать писать и выполнять практически сразу после знакомства с системой, однако система КУМИР позволяет создавать и достаточно большие, сложные программы. Во время редактирования программы система КУМИР автоматически производит синтаксический разбор и сообщает о найденных ошибках.
В то же время КУМИР является учебной системой. В неё встроено несколько графических исполнителей, действия которых визуализируются на их "игровом поле" или арене.
Графический исполнитель Робот "живет" на прямоугольном поле из квадратных клеток, может переходить между соседними клетками и закрашивать клетки.
Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. На практике поле всегда ограниченного размера, а стенки стоят в заданных местах в зависимости от задачи. Задача состоит в закрашивании определенных клеток и остановке робота в заданном месте.
У Робота есть пять команд-приказов:
При выполнении одной из первых четырех команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения через стену, то он разрушится (произойдет отказ).
По команде закрасить закрашивается клетка, в которой Робот находится в настоящий момент (если клетка уже закрашена, отказа не происходит).
На бесконечном поле есть горизонтальная стена. Длина стены неизвестна. Робот находится на 3 клетки выше стены и левее на 1 клетку. Требуется закрасить клетки, примыкающие к стене сверху и снизу.
использовать Робот
нц пока не ( снизу свободно )
нц пока не ( сверху свободно )
На бесконечном поле есть горизонтальная и вертикальная стены. Левый конец горизонтальной стены соединен с нижним концом вертикальной стены. Длины стен неизвестны. В горизонтальной стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной непосредственно справа от вертикальной стены у ее конца.
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно выше и ниже горизонтальной стены. Проход должен остаться не закрашенным. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведенного выше рисунка Робот должен закрасить следующие клетки (см. рисунок ниже)
Открыть программу Кумир. Создать новую программу – Программа, новая программа.
использовать Робот
алг
нач
.
кон
2. Создай СТАРТОВУЮ ОБСТАНОВКУ ДЛЯ РЕШЕНИЯ ЗАДАЧИ – смотри рисунок ниже
А ) Создай 1 версию обстановки – Инструменты, Создать стартовую обстановку для Робота.
Сохрани – выбери в меню Обстановка, Сохранить как, выбери папку своего класса и сохрани, имя файла – 1 вариант (1 версия)
Напиши алгоритм – он должен быть универсальным, правильно работать и для 1 версии и для второй версии стартовой обстановки
использовать Робот
алг
нач
. | Спуститься вниз вдоль стены
. нц пока снизу свободно
. . вниз
. кц
. | Закрасить клетки сверху до прохода
. нц пока не снизу свободно
. . закрасить
. . вправо
. кц
. | пройти проход независимо сколько он клеток
. нц пока снизу свободно
. . вправо
. кц
. | Закрасить клетки сверху после прохода
. нц пока не снизу свободно
. . закрасить
. . вправо
. кц
. | спуститься вниз и влево
. вниз
. влево
. | Закрасить клетки снизу справа налево до прохода
. нц пока не сверху свободно
. . закрасить
. . влево
. кц
. | пройти проход справа налево независимо сколько он клеток
. нц пока сверху свободно
. . влево
. кц
. | Закрасить клетки снизу справа налево после прохода
. нц пока не сверху свободно
. . закрасить
. . влево
. кц
кон
ЗАДАЧА
На бесконечном поле имеется горизонтальная стена, бесконечно продолжается влево и заканчивается лестницей, которая спускается слева направо. Высота каждой ступени — две клетки, ширина — две клетки. Робот находится на горизонтальной стене для спуска по лестнице. На рисунке указан один из способов расположения лестницы и Робота( Робот обозначен символом ◊).
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные на ступенях лестницы. Требуется закрасить только клетки, удовлетворяющие данному условию.
Например, для приведенного выше рисунка Робот должен закрасить клетки:
Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого количества ступеней. При исполнении алгоритма Робот не должен разрушиться.
РЕШЕНИЕ
Данную задачу будем решать в среде программирования КуМир. Откроем программу и перейдем в меню Робот — > Редактировать обстановку
Строим лестницу. тЛевой кнопкой мыши щелкаем по стенкам клетки. Ромб (робот) перемещаем в нужное место, зажав левую кнопку мыши
Сначала вспомним некоторые команды для исполнителя Робот.
№ п/п | Команда | Обозначение |
1 | нц | начало цикла |
2 | кц | конец цикла |
3 | закрасить | закрашиваетcя клетка |
4 | вверх, вниз, влево, вправо | движение робота |
5 | нач, кон | начало и конец программы |
В задании сказано, что
Алгоритм должен решать задачу для произвольного размера поля и любого количества ступеней
Внутри цикла необходимо последовательно выполнить команды:
Полностью готовая программа выглядит так:
Для проверки алгоритма добавим ещё несколько ступеней и проверим результат
Исполнитель Робот итоговый результат
Итак, алгоритм закрашивает клетки при любом количестве ступеней лестницы.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Робот существует в определенной обстановке ( прямоугольном клетчатом поле). Между некоторыми клетками поля могут быть расположены стены. Некоторые клетки могут быть закрашены (рис. 3.11).
Робот занимает ровно одну клетку поля.
По команде закрасить Робот закрашивает клетку, в которой стоит. Если клетка уже была закрашена, то она закрасится повторно, хотя никаких видимых изменений не произойдет.
Робот может исполнять только правильно записанные команды. Если вместо команды вниз написать внис, то Робот эту запись не поймет и сразу же сообщит об ошибке.
Ошибки: 1 синтаксические; 2. логические
Описания обстановок хранятся в текстовых файлах специального формата (формат .fil).
Текущая - обстановка, в которой находится Робот в данный момент (включая информацию о положении Робота).
Стартовая - обстановка, в которую принудительно помещается Робот в начале выполнения программы, использующей Робот.
Задать стартовую обстановку по условию задачи:
2. Указать Исполнителя:
Меню Вставка →Использовать Робот
3. Написать алгоритм решения задачи.
4. Выполнить алгоритм (Меню Выполнение →Выполнить непрерывно /F9)
5. Меню Программа – Сохранить программу как…(указать папку, дать имя файлу, расширение файла .kum)
Система команд исполнителя Робот в системе КУМИР
Команда | Действие |
вверх | Робот перемещается на 1 клетку вверх |
вниз | Робот перемещается на 1 клетку вниз |
влево | Робот перемещается на 1 клетку влево |
вправо | Робот перемещается на 1 клетку вправо |
закрасить | Робот закрашивает клетку, в которой находится |
справа свободно | Робот проверяет выполнение соответствующего простого условия |
слева свободно | ↓ |
сверху свободно | ↓ |
снизу свободно | ↓ |
клетка закрашена | ↓ |
клетка чистая | ↓ |
Циклические алгоритмы
Цикл – организация повторения действий, пока верно некоторое условие.
Тело цикла – набор повторяемых действий.
Условие – логическое выражение (простое или сложное ( составное))
Типы циклов:
Пример: нц пока справа свободно
Общий вид цикла «Повторять n раз:
ПОВТОРИТЬ n РАЗ
КОНЕЦ
Составные условия образуются из одного или нескольких простых условий и служебных слов И, ИЛИ, НЕ.
Составное условие А И В ( где А, В - простые условия), выполнено, когда выполнено каждое из двух входящих в него простых условий.
Пусть А - сверху свободно, В - справа свободно, тогда составное условие А И В - сверху свободно И справа свободно.
Составное условие А ИЛИ В выполнено, когда выполнено хотя бы одно из двух входящих в него простых условий: сверху свободно ИЛИ справа свободно
Составное условие НЕ А - выполнено, когда не выполнено условие А.
Пример: Пусть А – клетка закрашена (простое условие).
Проверка составного условия НЕ А:
а) А - выполнено, НЕ А (НЕ закрашено) - не выполнено.
б) А - не выполнено, НЕ А (НЕ закрашено) - выполнено.
Команда ветвления
Ветвление - форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий.
Общий вид команды ЕСЛИ:
ЕСЛИ ТО ИНАЧЕ
КОНЕЦ
Полное ветвление: Неполное ветвление:
если то если то
Вспомогательный алгоритм - алгоритм, решающий некоторую подзадачу основной задачи.
В системе КУМИР вспомогательные алгоритмы пишутся в конце основной программы (после служебного слова кон), вызываются на выполнение в основой программе по имени.
Вопросы и задания
1. Приведите все алгоритмы из трех команд, которые переместят Робота из исходного положения в клетку Б.
Существует ли для этой задачи алгоритм, при выполнении которого Робот делает:
а) два шага; б) четыре шага; в) пять шагов; г) семь шагов?
Петя составил алгоритм, переводящий Робота из клетки А в клетку Б с закрашиванием каких-то клеток. Что должен сделать Коля с этим алгоритмом, чтобы получить алгоритм, переводящий Робота из Б в А и закрашивающий те же клетки?
Петя составил алгоритм, при выполнении которого Робот вернулся в исходное положение. Коля стер одну из команд. При выполнении Колиного алгоритма Робот также вернулся в исходное положение. Какую команду стер Коля?
Маша придумала узор для Робота. Коля стер ровно половину закрашенных клеток. Восстановите рисунок, зная, что он симметричен относительно вертикальной оси. Напишите программу для Робота.
Напишите программу, с помощью которой Робот сможет попасть в клетку Б во всех трех лабиринтах.
вверх; закрасить; вниз
вправо; закрасить; влево
вниз; закрасить; вверх
влево; закрасить; вправо
вверх; вправо; закрасить
вниз; вниз; закрасить
влево; влево; закрасить
вверх; вверх; закрасить
вправо; вправо; вправо
вправо; вправо; вправо
8. Составьте алгоритмы, под управлением которых Робот закрасит указанные клетки:
9. Известно, что где-то правее Робота есть стена. Составьте алгоритм, под управлением которого Робот закрасит ряд клеток до стены и вернется в исходное положение.
10. Известно, что где-то правее Робота есть закрашенная клетка.
Составьте алгоритм, под управлением которого Робот закрасит ряд клеток до закрашенной клетки и вернется в исходное положение.
11. Известно, что Робот находится рядом с левым входом в горизонтальный коридор.
Составьте алгоритм, под управлением которого Робот закрасит все клетки этого коридора и вернется в исходное положение.
12. Известно, что Робот находится где-то в горизонтальном коридоре. Ни одна из клеток коридора не закрашена.
Составьте алгоритм, под управлением которого Робот закрасит все клетки этого коридора и вернется в исходное положение.
13. В ряду из десяти клеток правее Робота некоторые клетки закрашены.
Составьте алгоритм, который закрашивает клетки:
а) ниже каждой закрашенной клетки;
б) выше и ниже каждой закрашенной клетки.
14. Что можно сказать о правильности следующего фрагмента алгоритма?
нц пока клетка закрашена
ЕСЛИ справа свободно ТО
кц
15. Напишите программу, с помощью которой Робот сможет попасть в клетку Б во всех трех лабиринтах.
16. Напишите программу, следуя которой Робот сможет пройти по коридору от левого нижнего угла поля к правому верхнему. Коридор имеет ширину одна клетка и тянется в направлении слева-снизу вправо-вверх. Пример возможного коридора изображен на рисунке.
Задачи ГИА
Коридор1. Робот находится где-то в вертикальном коридоре. Ни одна из клеток коридора не закрашена. Составить алгоритм, под управлением которого Робот закрасит все клетки этого коридора и вернется в исходное положение.
Напишите для Робота алгоритм, закрашивающий все клетки внутри коридора и возвращающий Робота в исходную позицию. Например, для приведенного выше рисунка Робот должен закрасить следующие клетки (см.рисунок):
На бесконечном поле имеется длинная горизонтальная стена. Длина стены неизвестна. Робот находится в одной из клеток непосредственно сверху от стены. Начальное положение Робота также неизвестно. Одно из возможных положений:
Дано
апишите алгоритм для Робота, закрашивающий все клетки, расположенные выше стены и прилегающие к ней, независимо от размеров стены и начального положения Робота. Например, для приведенного рисунка Робот должен закрасить следующие клетки:
Конечное положение Робота может быть произвольным. При выполнении алгоритма Робот не должен разрушаться.
Робот находится в левом верхнем углу огороженного пространства, имеющего форму прямоугольника. Размеры прямоугольника неизвестны. Один из возможных размеров прямоугольника и расположение Робота приведены на рисунке. Робот находится в левом верхнем углу огороженного пространства, имеющего форму прямоугольника. Размеры прямоугольника неизвестны. Один из возможных размеров прямоугольника и расположение Робота приведены на рисунке. Конечное положение Робота может быть произвольным. При выполнении алгоритма Робот не должен разрушаться.
На бесконечном поле клеток имеется горизонтальная стена. Длина стены неизвестна. Робот расположен в одной из клеток непосредственно под стеной. Точная начальная позиция Робота неизвестна. Возможное начальное положение Робота приведено на рисунке а) (см. букву Р).
Конечное положение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера стены и любой допустимой начальной позиции Робота.
Читайте также: