Как составить алгоритм программы для робота

Первые шаги

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

Если вам больше нравится информация в формате видеоуроков, то на сайте есть видеоурок Робот. Простые команды.

У любого исполнителя должна быть система команд (СКИсистема команд исполнителя). Система команд исполнителя — совокупность всех команд, которые может выполнить исполнитель. В качестве примера рассмотрим дрессированную собаку. Она умеет выполнять некоторые команды — «Сидеть», «Лежать», «Рядом» и т. п. Это и есть ее система команд.

Простые команды Робота

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

  • вверх
  • вниз
  • влево
  • вправо
  • закрасить

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

  1. вверх — переместить Робота на одну клетку вверх
  2. вниз — переместить Робота на одну клетку вниз
  3. влево — переместить Робота на одну клетку влево
  4. вправо — переместить Робота на одну клетку вправо
  5. закрасить — закрасить текущую клетку (клетку в которой находится Робот).

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

  • вверх — Escape, Up (стрелка вверх)
  • вниз — Escape, Down (стрелка вниз)
  • влево — Escape, Left (стрелка влево)
  • вправо — Escape, Right (стрелка вправо)
  • закрасить — Escape, Space (пробел)

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

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

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

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

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

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

Первая программа для Робота

Первая программа для Робота

Удаляем символ «|» и называем наш алгоритм «Квадрат»

Алгоритм квадрат

Алгоритм квадрат

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

Первые шаги

Первые шаги

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

выполнить программу

выполнить программу

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

Первый результат

Первый результат

Если такое окно Робота у вас не появилось, то на панели инструментов щелкните «Показать окно Робота» или в меню Робот выберите пункт «Показать окно Робота«. Продолжаем дальше.

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

вниз

закрасить

вниз

закрасить

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

влево

закрасить

влево

закрасить

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

вверх

закрасить

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

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

алг Квадрат

нач

закрасить

вправо

закрасить

вправо

закрасить

вниз

закрасить

вниз

закрасить

влево

закрасить

влево

закрасить

вверх

закрасить

кон

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

Результат работы программы

Результат работы программы

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

Автор:

Загрузка…

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

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

кумир

Видео на тему: КуМир. Робот. Знакомство

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

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

кумир

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

кумир

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

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

алг

нач

кон

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

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

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

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

Что такое стартовая обстановка?

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

кумир

кумир

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

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

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

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

кумир

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

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

кумир

Далее,

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

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

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

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

вверх

вниз

влево

вправо

закрасить

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

кумир

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

Как работать в программе Кумир

Удаляем символ «|» и называем наш алгоритм «Квадрат»

Как работать в программе Кумир

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

Как работать в программе Кумир

Если такое окно Робота у вас не появилось, то на панели инструментов щелкните «Показать окно Робота» или в меню Робот выберите пункт «Показать окно Робота». Продолжаем дальше.

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

вниз

закрасить

вниз

закрасить

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

влево

закрасить

влево

закрасить

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

вверх

закрасить

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

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

алг Квадрат

нач

закрасить

вправо

закрасить

вправо

закрасить

вниз

закрасить

вниз

закрасить

влево

закрасить

влево

закрасить

вверх

закрасить

кон

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

Как работать в программе Кумир

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

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

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

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

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

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

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

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

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

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

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

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

повторяй 7 раз

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

конец цикла

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

Виды циклов.

Цикл со счетчиком.

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

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

нц <количество повторений> раз

<команда 1>

<команда 2>

<команда n>

кц

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

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

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

Как работать в программе Кумир

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

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

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

кон

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

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

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

алг

нач

нц 7 раз

закрасить

вправо

кц

кон

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

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

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

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

пока не устал

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

конец цикла

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

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

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

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

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

сверху стена

снизу стена

слева стена

справа стена

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

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

«Пока справа свободно делай шаг вправо и закрашивай клетку»

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

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

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

алг

нач

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

вправо

закрасить

кц

кон

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

Как работать в программе Кумир

Дорогой читатель! Добавьте этот сайт в закладки своего браузера и поделитесь с друзьями ссылкой на этот сайт! Мы стараемся показывать здесь всякие хитрости и секреты. Пригодится точно.

Это тоже интересно:

Язык программирования Pascal для новичков: Основные понятия.

Как установить Java и работать в языке программирования Java.

Как работать в Delphi: конкретные уроки.

GO программирование: самое начало работы.

Методическая разработка по информатике.

Тема: «Исполнитель Робот в программе КуМир  на уроках информатики  »

Автор: Григорьева Ю.А.,

учитель технологии «Информатика и ИКТ»

Пояснительная записка

Цель разработки: изучить возможности программирования на примере конкретного исполнителя Робот  с использованием среды КУМИР; дать практические навыки работы с исполнителем.

Методическая разработка составлена для проведения уроков информатики  Практика на компьютере: работа с учебным исполнителем алгоритмов; составление линейных, ветвящихся и циклических алгоритмов управления исполнителем; составление алгоритмов со сложной структурой; использование вспомогательных алгоритмов (процедур, подпрограмм).

Учащиеся должны знать:

  • что такое исполнитель; СКИ Робота, среду исполнителя Робот;
  • что такое алгоритм ;  в чем состоят основные свойства алгоритма;
  • способы записи алгоритмов: блок-схемы, учебный алгоритмический язык;  основные алгоритмические конструкции: следование, ветвление, цикл; структуры
  • алгоритмов;  назначение    вспомогательных    алгоритмов;    технологии    построения    сложных алгоритмов:

Учащиеся должны уметь:        

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

Занятие 1 (2 часа)                Урок 1.

Исполнитель Робот. Система команд исполнителя.

План урока.

  1. Описание СКИ исполнителя, среды исполнителя.

2.Разбор типичных алгоритмов Робота.

Ход урока.

Рассмотрим описание исполнителя.

Среда исполнителя: Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки.

 СКИ Робота: простые команды: вверх, вниз, влево, вправо, закрасить.

Команды логические: (проверки условия)

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

слева свободно                 справа свободно.

Логические связки: И,НЕ, ИЛИ:

Пример:(Не слева свободно) или (не справа свободно)

Команда ветвления:                                        команда цикла:        

         если условие то                                                нц пока условие

              серия команд                                                     серия команд

всё                                                                кц

(В КИМах 2009 года команды Робота отличались от привычных детям, что приводило к путанице: )

Команда ветвления:                                        команда цикла:        

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

              серия команд                                                     серия команд

конец                                                                    конец

Общий вид окна программы Кумир.              Графическая среда Робота:

В КИМах демонстрационного варианта 2010 года формат команд изменен на  привычный

Порядок  создания алгоритма:

1.Командами  Инструменты  -Редактировать стартовую обстановку  нарисовать на поле Робота стены и установить Робота в начальное положение.

2.Командами Робот- Сменить стартовую обстановку  сохранить новую обстановку.

3.Командами Вставка- Использовать Робот указать исполнителя.

4.В окне документа записать алгоритм, используя меню Вставка.

5.Командами Выполнение –выполнить непрерывно (или по шагам) запустить алгоритм.

6.Рассмотреть результат выполнения алгоритма и при необходимости произвести его отладку.

Занятие 1 (2 часа)                Урок 2.

Практическая  работа « Составление линейных алгоритмов».

Задания: 1.Робот в произвольной точке поля. Закрасить клетку сверху, снизу и справа от исходного положения.

  1. Робот в произвольной точке поля. Передвинуть Робот на 4 клетки вправо, закрасив их.
  2. Создайте новую стартовую обстановку, нарисовав на поле квадрат со стороной 4 клетки.  Сохраните обстановку как стартовую.
  3. Создайте новую стартовую обстановку, нарисовав на поле коридор с проходами в стенах. Сохраните обстановку как obst2.fil. Смените стартовую обстановку на вновь созданную.

Занятие 2 (2 часа)                Урок 1.

Тема: Ветвление и последовательная детализация алгоритма.

Разбор задач КИМов  с использованием исполнителя Робот.

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

алг ким 2009

нач

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

то вправо

все

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

то вправо

все

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

то вправо

все

кон

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

алг ким 2010

нач

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

то вправо

все

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

то вправо

все

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

то вправо

все

кон

Пр. раб. №14. Составление и отладка алгоритмов ветвления

Задания. См. Приложение.

Занятие  3. Циклические алгоритмы. Урок 1-2

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

Пр. раб. №15. Составление и отладка  циклических алгоритмов

1.Составьте алгоритм, закрашивающий все внутренние клетки, прилегающие к стене.

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

алг

нач

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

закрасить; вправо

кц

нц пока снизу свободно

закрасить; вниз

кц

нц пока не снизу свободно

закрасить; влево

кц

кон

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

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

алг

нач

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

вправо; закрасить

кц

кон

3.Составить алгоритм, закрашивающий все клетки, находящиеся  между двумя  стенами.

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

алг уч3

нач

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

вправо

если (не сверху свободно) и (не снизу свободно)

то

закрасить

все

кц

кон

 4.Составить алгоритм, закрашивающий все клетки вокруг прямоугольной стены.

алг уч4

нач

закрасить;вверх

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

закрасить;вверх;

кц

закрасить;вправо

нц пока не снизу свободно

закрасить;вправо;

кц

закрасить;вниз

нц пока не слева свободно

закрасить;вниз;

кц

закрасить;влево

нц пока не сверху свободно

закрасить; влево;

кц

кон

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

алг уч5

нач

вправо

нц пока не снизу свободно

закрасить; вправо

кц

закрасить; вниз

нц пока слева свободно

закрасить; влево

кц

нц пока не слева свободно

закрасить; вниз

кц

закрасить;влево;закрасить; вверх;

нц пока сверху свободно

закрасить; вверх

кц

нц пока не сверху свободно

закрасить; влево

кц

кон

Занятие 4                                                                                              Урок 1

Вспомогательные алгоритмы.

Цель: ввести понятие основного и вспомогательного алгоритма; объяснить правила использования вспомогательного алгоритма; разобрать примеры алгоритмов с использованием вспомогательного.

План урока

1.Ввод новых терминов (основного и вспомогательного алгоритма, вызова) и объяснение новых понятий.

2.Разбор примеров решения задач с применением вспомогательного алгоритма.

При решении некоторых задач удобно разбить их на более мелкие подзадачи, каждую из которых можно оформит как самостоятельный алгоритм. В этом случае сначала составляется так называемый основной алгоритм, в котором для решения подзадач используются вызовы вспомогательных алгоритмов, которые дописываются позднее. Такой способ решения называется методом последовательного уточнения. Он позволяет работать над проектом группе программистов, каждый при этом решает свою подзадачу.

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

Команда выполнения вспомогательного алгоритма называется вызовом и записывается в теле основного алгоритма.

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

Задача1:

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

Решение

Разбор на доске:

Задача2.  Робот находится в верхнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает в шахматном порядке квадрат 8 х 8. Конечное положение Робота может быть произвольным.

Занятие 4                                                                                              Урок 2

Практическая работа на ПК «Решение задачи с использованием вспомогательных алгоритмов».

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

План урока

1.Задание полностью проходит за ПК.  Учащиеся   получают задания и выполняют их в программной среде Кумир. Результаты Работы сохраняются в виде файлов для последующей проверки.

Задача1. Робот находится в нижнем левом углу поля. Стен и закрашенных клеток нет. Составьте алгоритм, который закрашивает 6 вертикальных полос одинаковой  длины в 6 клеток. Конечное положение Робота может быть произвольным.

Задача2.Используя вспомогательные, составьте алгоритм для закрашивания клеток, образующих число 1212.

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

Занятие 5                                                                                              Урок  1-2

Контрольная работа

«Составление алгоритма в среде исполнителя Робот».

Цель: проверить полученные знания по созданию  и умению анализировать алгоритмы  в  программной среде Кумир.

Задания для контрольной работы делятся по уровням сложности и включает в себя 3 задачи с исполнителем Робот (1 и 2  задача –на  ветвление и циклы, 3 задача с- на использование вспомогательного алгоритма.) Тексты заданий приводятся в приложении.

Исходные и конечные обстановки и созданные алгоритмы записываются в виде файла.

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

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

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

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

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

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

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

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

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

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

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

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

повторяй 7 раз

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

конец цикла

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

Цикл — это многократное исполнение последовательности команд

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

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

нц <количество повторений> раз

<команда 1>

<команда 2>

<команда n>

кц

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

В системе КуМир цикл «n раз» записывается при помощи следующей конструкции:

нц n раз

набор команд

кц

n — число повторений цикла.

Пример алгоритма для исполнителя Робот в системе КуМир:

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

алг задание

нач

нц 5 раз

вправо

закрасить

кц

кон

В результате работы программы исполнитель Робот пройдёт вправо на 1 клетку и закрасит её. Затем повторит те же действия ещё 4 раза. Таким образом, Робот переместится вправо на 5 клеток и закрасит их.

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

пока не устал

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

конец цикла

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

  1. сверху не стена или сверху свободно

  2. снизу не стена или снизу свободно

  3. слева не стена или слева свободно

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

  5. сверху стена или сверху не свободно

  6. снизу стена или снизу не свободно

  7. слева стена или слева не свободно

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

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

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

«Пока справа свободно делай шаг вправо и закрашивай клетку»

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

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

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

алг

нач

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

вправо

закрасить

кц

кон

Сегодня
на уроке мы вспомним:

· что
такое Робот;

· как
работать с программой Кумир;

· и
разберём типовые задания ОГЭ по информатике по данной теме.

Работать
с исполнителем алгоритма Робот мы будем в среде программирования Кумир.

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

Робот
может выполнять 5 команд.

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

Команда
Закрасить предназначена для закрашивания
клетки, в которой находится Робот.

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

Как
мы помним, форма ветвления может быть полной и неполной.

Полная
форма ветвления начинается со слова ЕСЛИ, после него указывается условие,
от которого зависит выполнение команд. Далее идёт служебное слово то и
список команд, которые исполнитель должен выполнить, если указанное условие
выполняется. Затем записывается служебное слово иначе и команды, которую
будут выполнены, если заданное условие окажется ложным. А в конце формы
ветвления записывается слово всё.

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

В
условиях можно использовать логические связки И,
ИЛИ, НЕ
.

Давайте
вспомним, какие команды-проверки Робот знает:

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

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

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

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

клетка
закрашена;

клетка
чистая;

слева
стена;

справа
стена;

сверху
стена;

снизу
стена;

Вспомним,
как записывать циклы для исполнителя Робот.

Тело
цикла записывается между служебными словами НЦ и КЦ, означающих начало цикла и
конец цикла.

Итак,
запускаем программу Кумир.

Сразу
открывается окно для набора программы Робота.

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

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

· Загрузить
стартовую обстановку из заранее созданного файла, имеющего определённое расширение .fil.

· Отредактировать
имеющуюся стартовую обстановку.

· Создать
новую стартовую обстановку.

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

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

Далее
задаём необходимые значения для стартовой обстановки:

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

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

· Щелкаем
по клетке левой кнопкой мыши, чтобы её закрасить или очистить.

· Для
добавления/удаления точки в клетке щёлкаем по клетке, удерживая клавишу Ctrl на
клавиатуре.

После
того, как стартовая обстановка отредактирована, необходимо зайти в пункт меню
«Робот» и убрать галочку с пункта «Редактировать обстановку…».

Теперь
можно создавать алгоритм для исполнителя Робот.

Ну
что же, давайте разберём типовые задания ОГЭ по информатике по созданию и
выполнению программ для исполнителя Робот.

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

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

Напишите
для Робота алгоритм, закрашивающий

все
клетки, расположенные непосредственно левее левой вертикальной стены, клетки,
расположенные непосредственно ниже горизонтальной стены,

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

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

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

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

Изучив
задание, создадим стартовую обстановку. Не лишним будет её сохранить.

В
пункте меню «Вставка» нажимаем на пункт «Использовать Робот». Появившуюся
команду можно набирать и самому. Но чтобы сэкономить время, лучше все команды
вставлять через пункт меню «Вставка».

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

Чтобы
переместить Робота вниз до конца стены и при этом закрасить клетки запишем цикл
ПОКА, в котором будем проверять, есть ли справа стена.

Проверяем,
что получилось.

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

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

Закрашиваем
клетку и сдвинуть Робота вверх, чтобы он находился слева от вертикальной стены

И
записываем снова цикл, в котором закрашиваем клетки и проверяем, есть ли слева
стена.

Запускаем
алгоритм. Всё получилось.

Обратите
внимание, что в условиях циклов, мы писали «не свободно» или «стена»,
что, по сути, одно и тоже.

А
теперь давайте изменим длину стен и проверим, сработает ли созданная программа.
Не забудьте сохранить алгоритм.

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

1
клетку. Левые края стен находятся на одном уровне. Длины стен неизвестны. Робот
находится в клетке, расположенной слева от конца верхней стены. На рисунке
указан один из возможных способов расположения стен и Робота.

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

Робот
должен закрасить только клетки, удовлетворяющие данному условию.

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

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

Внимательно
прочитайте текст задания.

Создаём
стартовую обстановку.

Пишем
цикл для перемещения Робота под стену.

Затем
цикл, в котором проверяется, есть ли стена сверху, и, пока она есть, клетки
закрашиваются.

Теперь
сдвигаем Робота влево.

И
пишем цикл перемещения Робота до нижней стены.

Клетки
нужно закрасить под стеной. Поэтому сдвигаем Робота вправо, затем вниз и влево.

И
теперь осталось написать цикл для закрашивания клеток под нижней стеной.

На
бесконечном поле имеется лестница. Сначала лестница спускается вниз справа
налево, затем спускается вниз слева направо. Высота каждой ступени – 1
клетка, ширина – 2 клетки. Робот находится справа от верхней ступени
лестницы. Количество ступенек, ведущих влево, и количество ступенек, ведущих
вправо, неизвестно. На рисунке указан один из возможных способов расположения
лестницы и Робота.

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

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

Создаём
стартовую обстановку.

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

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

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

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

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

Что
такое Робот?

Как
записывается цикл с постусловием?

Чем
полная форма ветвления отличается от неполной?

Как
переместить Робота в новую позицию?

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

Понравилась статья? Поделить с друзьями:
  • Как найти среднюю площадь круга
  • Как исправить мотивацию
  • Точка входа в процедуру culaunchkernel ptsz не найдена в библиотеке dll nvcuda dll как исправить
  • Как найти определяемое существительное
  • Как найти номер тел по инн