Как составить алгоритм по информатике 9 класс робот

Первые шаги

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Первые шаги

Первые шаги

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

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

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

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

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

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

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

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

вниз

закрасить

вниз

закрасить

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

влево

закрасить

влево

закрасить

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

вверх

закрасить

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

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

алг Квадрат

нач

закрасить

вправо

закрасить

вправо

закрасить

вниз

закрасить

вниз

закрасить

влево

закрасить

влево

закрасить

вверх

закрасить

кон

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

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

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

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

Автор:

Информатика ОГЭ №15.1 (Кумир)

Попробуем разобраться с заданием ОГЭ №15 по информатике. Данное задание делится на два. То есть, тут есть выбор. Оба задания связаны с темой “Алгоритмизация и программирование”. В данной статье рассмотрим задание в среде программирования — Кумир.

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

У него не так много своих команд:

  • вверх – движение вверх на одну клетку;
  • вниз – движение вниз на одну клетку;
  • вправо – движение вправо на одну клетку;
  • влево – движение влево на одну клетку;
  • закрасить – закрасить текущее местоположение (клетку).

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

Алгоритм робота с циклом
Алгоритм робота с циклом

Сам цикл начинается с команды “нц” – начать цикл, а заканчивается “кц” – конец цикла.

Цикл можно повторять определённое количество раз.

Цикл с количеством повторений
Цикл с количеством повторений

Цикл по природе своей повторяет, написанное внутри него, определённое количество раз.

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

  • пока сверху свободно – до тех пор, пока свободно сверху совершаются действия;
  • пока сверху не свободно – до тех пор, пока сверху стена совершаются действия;
  • пока снизу свободно – до тех пор, пока свободно снизу совершаются действия;
  • пока снизу не свободно – до тех пор, пока снизу стена совершаются действия;
  • пока справа свободно – до тех пор. пока свободно справа совершаются действия;
  • пока справа не свободно – до тех пор, пока справа стена совершаются действия;
  • пока слева свободно – до тех пор, пока свободно слева совершаются действия;
  • пока слева не свободно – до тех пор, пока слева стена совершаются действия.

Конструкцию “не свободно” можно заметить на “стена”.

Эти условия можно сочетать за счёт оператора “И”. Например, “пока сверху свободно и слева стена”.

Попробуем рассмотреть задание и решить его.

Пример

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

Стартовая обстановка
Стартовая обстановка
Результат после применения алгоритма
Результат после применения алгоритма

Решение

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

Интерфейс программы Кумир
Интерфейс программы Кумир

Для начала нам необходимо создать стартовую обстановку (поле для нашего робота), как на примере из задания. Зайдём во вкладку “Робот” → “Новая обстановка”.

Создание новой обстановки
Создание новой обстановки

Далее укажем необходимое количество строк и столбцов, предварительно посчитав сколько их в образце. После того, как записали нужное количество, нажимаем “ОК”.

Указываем количество строк и столбцов
Указываем количество строк и столбцов

После этого необходимо расставить “стены” как на примере (точно так же). Для построения стены просто нажимаем на линию, где хотим построить стену. На кнопки “плюс” и “минус” также можно управлять размерами обстановки.

Редактируемая обстановка
Редактируемая обстановка

Также установим начальное положение робота как на образце, для этого перетащим его. После создания стен нажимаем “Робот” → “Редактировать обстановку” (чтобы перестать её редактировать, т.к. уже находимся в режиме редактирования).

Полученная обстановка
Полученная обстановка

Теперь можем уже создавать алгоритм. Выберем исполнителя Робот. Зайдём во вкладку “Вставка” и нажмём на “использовать Робот”. После этого Кумир начнёт воспринимать его команды. Команду можно написать и самостоятельно.

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

Все наши команды должны быть оформлены через циклы. Без них задание считается проваленным (0 баллов). Поэтому будем использовать циклы. Пройдём первую часть, воспользуясь циклом:

Первый цикл
Первый цикл
Результат первого цикла
Результат первого цикла

Пройдём пробел за счёт цикла:

Второй цикл
Второй цикл
Результат второго цикла
Результат второго цикла

Далее воспользуемся ещё одним циклом:

Третий цикл
Третий цикл
Результат третьего цикла
Результат третьего цикла

Продолжим следующим циклом:

Четвёртый цикл
Четвёртый цикл
Результат четвёртого цикла
Результат четвёртого цикла

Теперь снова нужно пройти пробел:

Пятый цикл
Пятый цикл
Результат пятого цикла
Результат пятого цикла

Осталось закончить алгоритм, закрасив оставшуюся часть:

Шестой цикл
Шестой цикл

Посмотрим на проделанную работу.

Финальный результат после шестого цикла
Финальный результат после шестого цикла

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

Сохранение

Чтобы сохранить программу, нужно зайти во вкладку “Программа” → “Сохранить как..”.

Сохранение программы
Сохранение программы

Для сохранения рабочей обстановки зайдём во вкладку “Робот” → “Сохранить обстановку..”.

Сохранение обстановки
Сохранение обстановки

Рекомендации по работе

  • Обязательно использовать циклы;
  • Можно лишь раз использовать команду без цикла (но лучше не надо);
  • Проверка работы сначала осуществляется на вашей обстановке, а потом уже на другой с такой же структурой, но с другими размерами. Поэтому очень важно использовать циклы.
  • Для запуска программы нажимаем на стрелочку “Play“. Кумир работает как интерпретатор, то есть выполняет команды построчно.

Понравилась статья? Хочешь разбираться в информатике, программировании и уметь работать в разных программах? Тогда ставь лайк, подпишись на канал и поделись статьей с друзьями!

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

#информатика #огэ #разбор #задания #решение #экзамен

Планируемые образовательные результаты:

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

Решаемые учебные задачи:

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

Опорные понятия:

  • алгоритм
  • исполнитель
  • система команд исполнителя

Новые понятия:

  • последовательное построение алгоритма

Средства ИКТ, используемые на уроке:

  • персональный компьютер (ПК) учителя, интерактивная доска, мультимедийный проектор;
  • ПК учащихся.

Электронное приложение к учебнику:

  • презентация «Конструирование алгоритмов».

Ход урока

I. Организационный момент

Приветствие обучающихся, проверка присутствующих, их готовности к уроку.

II. Актуализация знаний

Эвристическая беседа. Вопросы для обсуждения:

Как часто в повседневной жизни нам приходится сталкиваться с алгоритмами?

– Кто (что) является исполнителями алгоритмов?

– Приведите примеры алгоритмов и их исполнителей.

III. Целеполагание, мотивация к учебной деятельности

– Рассмотрим утверждения, которые приведены в таблице  (приложение 1).

– Отметьте знаками «+» и «–» верные (неверные), на ваш взгляд утверждения. Если информация  вам незнакома, поставьте знак «?».

Утверждения:

  • Алгоритм можно разработать (составить, построить) только одним способом.
  • Чтобы составить алгоритм для конкретного исполнителя нужно знать систему команд исполнителя.
  • Алгоритмическая конструкция следование отображает естественный, последовательный порядок действий.
  • Линейные алгоритмы наиболее распространённые конструкции для решения логических задач.
  • Алгоритмическая конструкция ветвление предусматривает выбор одной из двух последовательности действий, в зависимости от результата проверки условия.
  • Алгоритмическая конструкция повторение (цикл) – это последовательность действий выполняемых многократно.
  • На практике используются только циклы с заданным числом повторений.
  • В школе мы редко сталкиваемся с алгоритмами.
  • Исполнитель Робот способен выполнять только линейные алгоритмы.
  • При решении сложных задач нет необходимости уточнять (детализировать) действия исполнителя.

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

– В конце занятия мы повторно рассмотрим таблицу «Верные – неверные утверждения» и у каждого из вас будет возможность не только убедиться в правильности или неправильности своих суждений, но и исправить знак «?».

III. Открытие нового знания

– Вы уже знакомы с исполнителем Робот. Он действует на клетчатом поле (прямоугольная область, которая разделена на клетки). Между клетками могут быть установлены стены. Используя команды, мы можем Роботом управлять: перемещать его по полю, закрашивать клетки.

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

Простые команды-приказы: вверх, вниз, влево, вправо, закрасить.

Логические команды – команды проверки условия: сверху свободно, снизу свободно, слева свободно, справа свободно.

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

если <условие> то
     < последовательность команд>
все

Если в одном условии требуется использовать несколько команд, то применяют логические связки: И, ИЛИ, НЕ.

Например:

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

Команда цикла:

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

– Рассмотрим подробно таблицу «Система команд исполнителя Робот» в учебнике (§ 2.3, п. 2.3.2, с. 77-78).

Последовательное построение алгоритма

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

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

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

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

Конечное положение Робота значения не имеет.

Решение.

Составим план действий Робота в обобщенном виде.

Шаг 1. Перейти к левому (правому) краю стены.

Шаг 2. Вернуть Робота в крайнюю клетку, примыкающую к стене сверху.

Шаг 3. Закрасить все клетки, примыкающие к стене сверху.

Детализация плана действий Робота.

1. Перейти к левому краю стены:

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

Положение Робота после выполнения этого алгоритма <Рисунок1>

2. Вернуть Робота в крайнюю клетку, примыкающую к стене сверху.

     вправо

Положение Робота после выполнения этого алгоритма <Рисунок2>

3. Закрасить все клетки, примыкающие к стене сверху:

нц пока снизу стена
      закрасить
      вправо
кц

Положение Робота после выполнения этого алгоритма и программа для Робота <Рисунок3>

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

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

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

Вывод. Метод последовательного построения алгоритма состоит из следующих действий:

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

IV. Закрепление нового материала

Практическая работа.

Задача № 1. На бесконечном поле имеется горизонтальная стена. Длина стены неизвестна. От правого конца стены вверх отходит вертикальная стена также неизвестной длины. Робот находится в углу между вертикальной и горизонтальной стеной. На рисунке указан один из возможных способов расположения стен и Робота.

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

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

Детализация плана действий Робота.

1. Закрасить все клетки, расположенные выше горизонтальной стены и прилегающие к ней:

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

Положение Робота после выполнения этого алгоритма <Рисунок4>

2. Вернуть Робота в исходное положение:

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

Положение Робота после выполнения этого алгоритма <Рисунок5>

3. Закрасить все клетки, расположенные левее вертикальной стены и прилегающие к ней:

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

Положение Робота после выполнения этого алгоритма и программа для Робота <Рисунок6>

Программа для Робота (Приложение 2)

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

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

Детализация плана действий Робота.

1. Закрасить клетку, в которой он находится (исходное положение):

2. Закрасить все клетки внутри коридора:

нц пока справа свободно
      вправо
      закрасить
кц

Положение Робота после выполнения этого алгоритма <Рисунок7>

3. Вернуть Робота в исходное положение:

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

Положение Робота после выполнения этого алгоритма <Рисунок8>

Программа для Робота (Приложение3)

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

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

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

Детализация плана действий Робота.

1. Закрасить верхнюю ступеньку:

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

Положение Робота после выполнения этого алгоритма <Рисунок9>

2. Спускаться вниз (на ступеньку) и закрашивать все клетки, расположенные непосредственно над ступенями лестницы:

нц пока справа свободно
  вправо
  вниз
  закрасить
  вправо
  закрасить
кц

Положение Робота после выполнения этого алгоритма <Рисунок10>

3. Подняться вверх (на ступеньку) и закрасить все клетки, расположенные непосредственно над ступенями лестницы:

нц пока не справа свободно
      вверх
      вправо
      закрасить
      вправо
      закрасить
кц

Положение Робота после выполнения этого алгоритма <Рисунок11>

Программа для Робота (Приложение 4)

Задача № 4. На бесконечном поле есть горизонтальная и вертикальная стены. Левый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной непосредственно над горизонтальной стеной у её правого конца. На рисунке указан один из возможных способов расположения стен и Робота.

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

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

Детализация плана действий Робота.

1. Закрасить все клетки слева до прохода в горизонтальной стене:

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

Положение Робота после выполнения этого алгоритма <Рисунок12>

2. Перейти через проход до горизонтальной стены:

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

Положение Робота после выполнения этого алгоритма <Рисунок13>

3.Двигаться влево до вертикальной стены и закрашивать все клетки, расположенные непосредственно выше горизонтальной стены:

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

Положение Робота после выполнения этого алгоритма <Рисунок14>

4. Закрасить все клетки справа от вертикальной стены до прохода:

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

Положение Робота после выполнения этого алгоритма <Рисунок15>

5. Перейти через проход до вертикальной стены:

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

Положение Робота после выполнения этого алгоритма <Рисунок16>

6. Закрасить все клетки справа от вертикальной стены:

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

Положение Робота после выполнения этого алгоритма <Рисунок17>

Программа для Робота (Приложение 5)

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

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

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

Детализация плана действий Робота.

1. Обойти стену:

Положение Робота после выполнения этого алгоритма <Рисунок18>

2. Закрасить все клетки слева от вертикальной стены:

нц пока справа стена
      закрасить
      вниз
кц

Положение Робота после выполнения этого алгоритма <Рисунок19>

3. Двигаться вправо до конца горизонтальной стены:

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

Положение Робота после выполнения этого алгоритма <Рисунок20>

4. Закрасить все клетки слева от вертикальной стены:

нц пока справа стена
      закрасить
      вниз
кц

Положение Робота после выполнения этого алгоритма <Рисунок21>

Программа для Робота (Приложение 6)

V. Рефлексия учебной деятельности

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

– Какие изменения вы хотели бы внести? Ответ обоснуйте.

Продолжи одно или несколько предложений:

  • Сегодня на уроке я узнал(а) …
  • Я научился …
  • Я могу самостоятельно …
  • Затруднения вызвало …
  • Мне нужно повторить …
  • Я оцениваю свою работу на уроке …
  • Мое настроение в конце урока …

VI. Домашнее задание

  • Учебник – § 2.3, п. 2.3.1 – 2.3.2; стр. 87-88, вопросы № 2-4 (устно), № 6 (письменно)
  • Рабочая тетрадь – № 86 (б)

Список литературы

  1. Босова Л.Л., Босова А.Ю. Информатика. Учебник. 9 класс.- Москва: БИНОМ. Лаборатория знаний, 2018.
  2. Босова Л.Л., Босова А.Ю. Информатика. Рабочая тетрадь. 9 класс.- Москва: БИНОМ. Лаборатория знаний, 2017.
  3. Босова Л.Л., Босова А.Ю. Информатика. Методическое пособие. 7-9 класс.- Москва: БИНОМ. Лаборатория знаний, 2016.
  4. Путимцева Ю.С. Информатика и ИКТ. Подготовка к ОГЭ в 2019 году. Диагностические работы. – М.: МЦНМО, 2019.
  5. Поляков К.Ю. Преподавание, наука и жизнь // ОГЭ (9 класс) //Задания КИМ № 20 [Электронный ресурс]. Режим доступа: http://kpolyakov.spb.ru/school/oge/gen.php?action=viewAllEgeNo&egeId=120&cat115=on, свободный.

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

Рассмотрим на примере исполнителя Робот из Комплекта Учебных Миров.

Система Команд Исполнителя Робот включает в себя команды:

вправо

влево

вверх

вниз

закрасить

Рассмотрим задачу:

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

Решение:

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

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

Запишем основной алгоритм.

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

алгЕлка

нач

. нц пока клетка чистая

. . ЗалитьВлево

. . ЗалитьВправо

. . закрасить

. . вверх

. кц

кон

Основная часть программы готова. При составлении алгоритма мы предположили, что у нас есть команды заливки клеток правее и левее Робота, команды –  ЗалитьВлево и ЗалитьВправо. Уточним, что скрывается за командами ЗалитьВлево и ЗалитьВправо.

Располагают вспомогательные алгоритмы в КуМире ниже главного. Вспомогательные алгоритмы также, как и главный алгоритм имеют заголовок, записываемый в первой строке алг и слова нач и кон.

Действие алгоритма ЗалитьВлево можно разделить на две смысловые части.

алгЗалитьВлево
нач

. влево
. нц пока клетка чистая
. . закрасить
. . влево
. кц

В первой части Робот красит клетки левее своего местоположения.

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

Во второй – Робот возвращается в свое местоположение.

кон

Команды процедуры ЗалитьВправо отличаются от команд процедуры ЗалитьВлево только направлением перемещения.

алгЗалитьВправо
нач

. вправо
. нц пока клетка чистая
. . закрасить
. . вправо
. кц
. нц пока клетка закрашена
. . влево
. кц

кон

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

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

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

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

алгКрасьВокруг
нач
. закрасить
. КрасьВыше
. КрасьЛевее
. КрасьНиже
. КрасьПравее
кон

Мы сослались на команды, которые не входят в систему команд исполнителя: КрасьВыше, КрасьЛевее, КрасьНиже и КрасьПравее. Так как перечисленные алгоритмы будут отличаться только направлением перемещения, рассмотрим только один из упомянутых вспомогательных алгоритмов. Чтобы закрасить клетку выше и вернуться надо выполнить всего три команды.

алгКрасьВыше
нач
. вверх
. закрасить

. вниз
кон

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

Уточним составленный алгоритм. Если после перехода вверх Робот попадает в чистую клетку, то ее надо не просто закрасить, а проверить соседние клетки, т.е. выполнить алгоритм КрасьВокруг.

алгКрасьВыше
нач
. вверх
. есликлетка чистая то
. . . КрасьВокруг
. все
. вниз
кон

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

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

Рисунок1

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

Например, рекурсивной картинкой является картинка, нарисованная с помощью исполнителя Черепаха.

использоватьЧерепаха
алгГлавный
нач
. Ветка(7, 70)
кон
алгВетка(арг цел n, вещ длина)
нач
. вправо(25)
. вперед (длина)
. если n>1 то
. . . Ветка (n1, длина *0.7)
. все
. назад (длина)
. влево (50)
. вперед (длина)
. если n>1 то
. . . Ветка (n1, длина *0.7)
. все
. назад (длина)
. вправо (25)
кон

Алгоритм Ветка, обращаясь сам к себе рисует 254 отрезка.

Обязательная литература: Босова Л.Л. Информатика : учебник для 9 класса / Л. Л. Босова, А.Ю. Босова. – М.: БИНОМ. Лаборатория знаний, 2017.

Загрузка…

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

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

кумир

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

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

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

кумир

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

кумир

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

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

алг

нач

кон

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

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

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

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

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

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

кумир

кумир

Отличаются они только тем, что в стартовой обстановке 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 программирование: самое начало работы.

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