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

Первые шаги

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Первые шаги

Первые шаги

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

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

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

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

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

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

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

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

вниз

закрасить

вниз

закрасить

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

влево

закрасить

влево

закрасить

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

вверх

закрасить

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

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

алг Квадрат

нач

закрасить

вправо

закрасить

вправо

закрасить

вниз

закрасить

вниз

закрасить

влево

закрасить

влево

закрасить

вверх

закрасить

кон

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

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

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

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

Автор:

Муниципальное
общеобразовательное учреждение

«Железногорская
средняя общеобразовательная школа №1»

Нижнеилимского
муниципального образования

Иркутской
области

Основы работы в программе «кумир»

Разработка
алгоритма с помощью исполнителя Робот и Чертежник

Автор:
Кочнева Евгения Владимировна

учитель
информатики

Железногорск-Илимский

2021

Содержание

1.                
Основы алгоритмизации…………………………………………………….  
3

2.                
Способы записи алгоритмов………………………………………………4

3.                
Разработка алгоритма с помощью
«Исполнителя Робот»………………6

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

4.1.         
Линейный алгоритм………………………………………………..14

4.2.         
Циклический алгоритм (цикл N
раз)………………………………18

4.3.         
Алгоритм ветвление (цикл с предусловием
«ПОКА»)…………..23

4.4.         
Команды ветвления (если, выбор)…………………………………30

4.5.         
Рисунки в Кумир……………………………………………………37

5.     Разработка
алгоритма с помощью «Исполнителя Чертежник……………..40

5.1.         
Использование вспомогательных алгоритмов

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

5.1.2.   Цикл
повторить
N раз…………………………………………..47

5.2.         
Практические работы……………………………………………….49

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

1. Основы
алгоритмизации

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

Управление – это целенаправленное воздействие одних объектов, которые
являются управляющими, на другие объекты – управляемые. Все управляющие
воздействия производятся с определенной целью с помощью команд. Таким образом,
алгоритмом управления – это последовательность команд по управлению объектом,
приводящую к достижению заранее поставленной цели.

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

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

1)Процесс решения задачи
должен быть разбит на последовательность отдельно выполняемых шагов – дискретность
(прерывность).

2)Алгоритм для данного
исполнителя содержит только те команды, которые входят в систему его команд – понятность.

3)Каждое правило алгоритма
должно быть четким и однозначным – определенность (точность).

4)Исполнение алгоритма должно
завершиться за определенное количество шагов конечность (результативность).

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

2. Способы
записи алгоритмов

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

·       
Словесные

·       
Графические

·       
На алгоритмических языках.

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

2.    
Блок-схема представляет собой графический документ, дающий представление о
порядке работы алгоритма.

Название блока

Название блока

Название блока

Начало, остановка

Овал: начало

Начало и конец блок

данные

Параллелограмм: А, В

Ввод-вывод данных

процесс

Вычислительное действие

Решение

Ромб: А>В

Проверка условия

подготовка

Шестиугольник: I:=1,50,1

Начало цикла

дисплей

Блок-схема: ссылка на другую страницу: В

Вывод результата на экран

документ

Блок-схема: документ: В

Вывод результата на печать

3.    
Алгоритмические языки – школьный алгоритмический язык,

Алгоритм применительно к
вычислительной технике должен обладать свойствами, которые обеспечивали бы его
автоматическое выполнение:

1)Процесс решения задачи
должен быть разбит на последовательность отдельно выполняемых шагов – дискретность
(прерывность).

2)Алгоритм для данного
исполнителя содержит только те команды, которые входят в систему его команд – понятность.

3)Каждое правило алгоритма
должно быть четким и однозначным –определенность (точность).

4)Исполнение алгоритма должно
завершиться за определенное количество шагов конечность (результативность).

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

3. Разработка
алгоритма с помощью «Исполнителя Робот»

Прежде чем
говорить о реализации алгоритмов для исполнителя, нужно понимать, что такое
программа и чем она отличается от алгоритма.

Программа – алгоритм, записанный на языке программирования.

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

 Среда Кумир версия 2.1.0 – Среда исполнителя Робот прямоугольное клетчатое поле, между клетками
которого могут быть препятствия (стены) рисунок 1.

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

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

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

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

·       
Логические связки: И, НЕ, ИЛИ (сложные условия)

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

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

если условие то

серия команд

всё

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

нц

пока условие

серия команд

кц

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

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

Шаг 1 – открываем меню Робот, выбираем команду Редактировать
обстановку
(рис.1),

Рисунок 1 – выбор
команды Редактировать обстановку

Далее, справа диалоговое окно обстановка
Робот, становиться синего цвета, и появляются кнопки управления (рис.2),
которыми можно добавить или убрать клетки поля (при первом запуске поле имеет
размер 7 х 7 клеток).

Рисунок 2 –
Редактирование поля

Затем, щелкая левой кнопкой
мыши (рис.3) выставляем препятствия для Робота.

Рисунок 3 – Окончание редактирования

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

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

Шаг 2 – составляем по
условию задачи алгоритм
для Робота, для этого в левой части окна
программы выполняем следующее:

1.     меню Вставка команда Использовать Робот,
слово робот закрашивается зеленым цветом;

2.     составляем нужный алгоритм по условию задачи;

3.     проверяем работает ли составленный алгоритм, для этого на панели
инструментов нажимаем кнопку Обычное или клавишу
F9.

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

         Рассмотрим примеры с
исполнителем Робот, для каждого алгоритма по отдельности.

1.     Линейные программы для исполнителя

Задача: Робот в произвольной
точке поля. Передвинуть Робота на 5 клеток влево, закрасив их (рис.5).Напишем
программу для Робота:

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

алг лабиринт

нач

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

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

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

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

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

кон

Рисунок 5 –
Выполнение алгоритма «Лабиринт»

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

2.     Циклические алгоритмы для исполнителя

Цикл «пока»

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

Очевидно, что
пока будет выполняться условие справа свободно, нужно выполнять команды: закрасить;
вправо (рис.6)

Рисунок 6 –
Использование цикла «Пока»

Для оформления таких
последовательностей действий используется специальная конструкция
алгоритмического языка —цикл «пока».

Цикл «раз»

Задача: нарисовать букву «П» размер высотой 6 клеток, шириной 4 клетки с
помощью исполнителя Робот. Исходное положение Робота показано на рисунке 7. В
этом алгоритме известно количество шагов исполнителя, поэтому используем цикл
«раз». Его конструкция в общем виде выглядит так:

НЦ количество РАЗ

КЦ

Рисунок 7 –
«Буква»

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

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

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

алг буква

нач

нц 5
раз

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

кц

закрасить

нц 3
раз

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

кц

нц5
раз

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

кц

кон

3.    
Алгоритм ветвление для
исполнителя Робот

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

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

команда ЕСЛИ. Ее общий вид:

ЕСЛИ <условие> ТО
<серия действий 1>

ИНАЧЕ <серия действий 2>

КОНЕЦ

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

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

Рисунок 8 –
«Коридор»

Единственным
признаком коридора является наличие границы сверху, значит, условие НЕ
сверхусвободнодолжно выполняться. Если при этом выполняется условие
снизусвободно, то клетку нужно закрасить, иначе — закрашивать не надо.
Известно, что слева и справа от горизонтального коридора есть клетки.

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

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

1.    
Линейные алгоритмы

Задания рассчитаны на группу в 10 человек. Каждая карточка
содержит 3 задания разной степени сложности.

Вариант 1

1. Составьте программу закрашивания прямоугольника 3×4, считая, что
Робот находится где-то в центре поля.

2. Необходимо перевести Робота из начального положения (◊) в точку A
за минимальное число шагов любым из возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 1-1

2.      Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 1-2

Вариант 2

1.     
Составьте программу закрашивания прямоугольника 4×2, считая, что
Робот находится где-то в центре поля.

2.     
Необходимо перевести Робота из начального положения (◊) в точку A
за минимальное число шагов любым из возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 2-1

3.      Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 2-2

Вариант 3

1. Составьте программу закрашивания
периметра квадрата 3×3, считая, что Робот находится где-то в центре поля.

2. Необходимо перевести Робота из
начального положения (◊) в точку A за минимальное число шагов любым из
возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 3-1

3. Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 3-2

Вариант 4

1. Составьте программу закрашивания
квадрата 3×3, считая, что Робот находится где-то в центре поля.

2. Необходимо перевести Робота из
начального положения (◊) в точку A за минимальное число шагов любым из
возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 4-1

3. Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 4-2

Вариант 5

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

2. Необходимо перевести Робота из
начального положения (◊) в точку A за минимальное число шагов любым из
возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 5-1

3. Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 5-2

Вариант 6

1. Составьте программу закрашивания
буквы «П», размерами три клетки по вертикали и две по горизонтали.
Начальное положение Робота — где-то в центре поля.

2. Необходимо перевести Робота из
начального положения (◊) в точку A за минимальное число шагов любым из
возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 6-1

3. Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 6-2

Вариант 7

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

2. Необходимо перевести Робота из
начального положения (◊) в точку A за минимальное число шагов любым из
возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 7-1

3. Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 7-2

Вариант 8

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

http://www.licey.net/kumir/img/robot/task8_1.png

2. Необходимо
перевести Робота из начального положения (◊) в точку A за минимальное число
шагов любым из возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 8-1

3. Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 8-2

Вариант 9

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

http://www.licey.net/kumir/img/robot/task9_1.png

2. Необходимо
перевести Робота из начального положения (◊) в точку A за минимальное число
шагов любым из возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 9-1

3. Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 9-2

Вариант 10

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

http://www.licey.net/kumir/img/robot/task10_1.png

2. Необходимо
перевести Робота из начального положения (◊) в точку A за минимальное число
шагов любым из возможных способов.

КуМир - Исполнитель Робот - Перевести Робота - 10-1

3. Необходимо
перевести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - Перевести Робота - 10-2

2. Циклические алгоритмы.  Цикл N раз.

Задания рассчитаны на
группу в 10 человек.

Каждая карточка содержит
3 задания разной степени сложности.

Вариант 1

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

2. Необходимо провести Робота по лабиринту из
начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота по лабиринту - 1

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

КуМир - Исполнитель Робот - закрасить клетки - 1

Вариант 2

1. Составьте
программу закрашивания 5-ти клеток влево от Робота, считая, что изначально
Робот находится у правого края поля.

2. Необходимо
провести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота по лабиринту - 2

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

КуМир - Исполнитель Робот - закрасить клетки - 2

Вариант 3

1. Составьте
программу закрашивания 5-ти клеток по диагонали вправо вниз от Робота, считая,
что изначально Робот находится в левом верхнем углу поля.

2. Необходимо
провести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота по лабиринту - 3

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

КуМир - Исполнитель Робот - закрасить клетки - 3

Вариант 4

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

2. Необходимо
провести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота по лабиринту - 4

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

КуМир - Исполнитель Робот - закрасить клетки - 4

 

 

 

Вариант 5

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

2. Необходимо
провести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота по лабиринту - 5

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

Вариант 6

1. Составьте программу закрашивания клеток поля,
отмеченных *. Начальное положение Робота обозначено значком ◊.

КуМир - Исполнитель Робот - закрасить клетки - 6

2. Необходимо
провести Робота по лабиринту из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота по лабиринту - 6

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

Вариант 7

1. Составьте программу закрашивания клеток поля,
отмеченных *. Начальное положение Робота обозначено значком ◊.

КуМир - Исполнитель Робот - закрасить клетки - 7

2. Необходимо
провести Робота вверх по лестнице из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота - 7

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

Вариант 8

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

2. Необходимо провести Робота вверх по лестнице
из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота - 8

3. Считая,
что Робот находится в левом нижнем углу поля, составьте программу закрашивания
клеток поля в виде буквы «Е» высотой в 5 клеток.

Вариант 9

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

2. Необходимо провести Робота вниз по лестнице
из начального положения (◊) в точку A.

КуМир - Исполнитель Робот - провести Робота вниз - 9

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

 

 

 

 

 

Вариант 10

1. Составьте программу закрашивания 3-х клеток
по диагонали вправо вверх от Робота, считая, что изначально Робот находится
где-то в центре поля.

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

КуМир - Исполнитель Робот - провести Робота - 10

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

3. Цикл с предусловием (цикл ПОКА)

Задания рассчитаны на
группу в 10 человек. Каждая карточка содержит по два задания.

Вариант 1

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

http://www.licey.net/kumir/img/robot/taskCycleWhile1_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile1_2.png

Вариант 2

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

http://www.licey.net/kumir/img/robot/taskCycleWhile2_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile2_2.png

Вариант 3

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

http://www.licey.net/kumir/img/robot/taskCycleWhile3_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile3_2.png

 

 

 

 

 

Вариант 4

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

http://www.licey.net/kumir/img/robot/taskCycleWhile4_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile4_2.png

Вариант 5

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

http://www.licey.net/kumir/img/robot/taskCycleWhile5_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile5_2.png

Вариант 6

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

http://www.licey.net/kumir/img/robot/taskCycleWhile6_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile6_2.png

 

 

 

 

Вариант 7

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

http://www.licey.net/kumir/img/robot/taskCycleWhile7_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile7_2.png

Вариант 8

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

http://www.licey.net/kumir/img/robot/taskCycleWhile8_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile8_2.png

Вариант 9

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

http://www.licey.net/kumir/img/robot/taskCycleWhile9_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile9_2.png

 

 

Вариант 10

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

http://www.licey.net/kumir/img/robot/taskCycleWhile10_1.png

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

http://www.licey.net/kumir/img/robot/taskCycleWhile10_2.png

4.Команды
ветвления (если, выбор)

Задания рассчитаны на
группу в 10 человек. Каждая карточка содержит по два задания.

Вариант 1

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет два горизонтальных и диагональный участки в форме http://www.licey.net/kumir/img/robot/taskIf1.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf1_1.png

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

http://www.licey.net/kumir/img/robot/taskIf1_2.png

Вариант 2

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет два горизонтальных и диагональный участки в форме http://www.licey.net/kumir/img/robot/taskIf2.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf2_1.png

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

http://www.licey.net/kumir/img/robot/taskIf2_2.png

Вариант 3

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет два горизонтальных и диагональный участки в форме http://www.licey.net/kumir/img/robot/taskIf3.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf3_1.png

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

http://www.licey.net/kumir/img/robot/taskIf3_2.png

 

 

 

 

 

 

Вариант 4

1. Необходимо провести Робота по коридору шириной
в одну клетку из начального положения (◊) до конца коридора, закрашивая при
этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку
располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет два горизонтальных и диагональный участки в форме http://www.licey.net/kumir/img/robot/taskIf4.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf4_1.png

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

http://www.licey.net/kumir/img/robot/taskIf4_2.png

Вариант 5

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет два вертикальных и диагональный участки в форме http://www.licey.net/kumir/img/robot/taskIf5.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf5_1.png

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

http://www.licey.net/kumir/img/robot/taskIf5_2.png

Вариант 6

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет горизонтальный, вертикальный и диагональный участки в
форме http://www.licey.net/kumir/img/robot/taskIf6.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf6_1.png

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

http://www.licey.net/kumir/img/robot/taskIf6_2.png

 

 

Вариант 7

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет горизонтальный, вертикальный и диагональный участки в
форме http://www.licey.net/kumir/img/robot/taskIf7.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf7_1.png

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

http://www.licey.net/kumir/img/robot/taskIf7_2.png

Вариант 8

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет горизонтальный, вертикальный и диагональный участки в
форме http://www.licey.net/kumir/img/robot/taskIf8.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf8_1.png

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

http://www.licey.net/kumir/img/robot/taskIf8_2.png

Вариант 9

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет горизонтальный, вертикальный и диагональный участки в
форме http://www.licey.net/kumir/img/robot/taskIf9.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf9_1.png

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

http://www.licey.net/kumir/img/robot/taskIf9_2.png

 

 

 

 

Вариант 10

1. Необходимо провести Робота по коридору
шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая
при этом все клетки коридора, которые имеют выход. Выходы размером в одну
клетку располагаются произвольно по всей длине коридора. Коридор заканчивается
тупиком. Коридор имеет два вертикальных и диагональный участки в форме http://www.licey.net/kumir/img/robot/taskIf10.gif. Пример коридора
показан на рисунке.

http://www.licey.net/kumir/img/robot/taskIf10_1.png

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

http://www.licey.net/kumir/img/robot/taskIf10_2.png

5.
Р
исунки в Кумир

1.

2.

3.

4.

5.

6.

7.        8.

9.

11.

Разработка
алгоритма с помощью «Исполнителя Чертежник»

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

При задании точек этой
координатной плоскости, в отличие от того, как это принято в математике, координаты
х и у разделяются запятой
. Например, координаты выделенной на рис. 9 точки
будут записаны так: (1, 1).

рисунок 9 – координата выделенной точки

Чертёжник имеет перо, которое
можно поднимать, опускать и перемещать.

При
перемещении опущенного пера за ним остаётся след — отрезок от предыдущего
положения пера до нового. При перемещении поднятого пера никакого следа на плоскости
не остаётся. В начальном положении перо чертёжника всегда поднято и
находится в точке (0, 0)
.

По команде поднять
перо
чертёжник поднимает перо. Если перо уже было поднято, чертёжник
игнорирует эту команду: он не меняет положение пера и не сообщает об отказе.
Иначе говоря, каким бы ни было положение пера до команды поднять перо, после
этой команды оно будет поднятым.

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

Рисунки
чертёжник выполняет с помощью команд сместиться в точку и сместиться на вектор.

По
команде сместиться в точку (а,
b) чертёжник сдвигается в точку с координатами (а, b). На рисунке 10 показаны
результаты выполнения команды сместиться в точку (2, 3) при различных
положениях пера до этой команды. Видно, что, независимо от предыдущего
положения, перо оказывается в точке (2, 3), но длина и направление отрезка,
который при этом чертится, могут быть различны. Команду сместиться в точку называют
командой абсолютного смещения.

рисунок 10 – пример абсолютного смещения

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

На рисунке 11
показаны результаты выполнения команды сместиться на вектор (2, 3) при
различных положениях пера до этой команды. Из рисунка видно, что положение пера
после этой команды зависит от его предыдущего положения, зато в результате
получаются отрезки, длина и направление которых одинаковы.

Рисунок 11 – пример относительного смещения точки

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

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

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

Пример
алгоритма управления чертёжником

Изобразим с
помощью чертёжника треугольник, положение вершин которого на координатной
плоскости определяется парами чисел (1, 1), (3, 5), (5, 2) (рис. 12).

             Рисунок 12

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

Сместиться
в точку (1, 1)

Опустить
перо

Сместиться
в точку (3, 5)

Сместиться
в точку (5, 2)

Сместиться
в точку (1, 1)

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

Пусть (х,
у
) — координаты вершины а прямоугольника ABCD (рис. 13).

Тогда
координаты вершины В можно записать как (х, у + 2), вершины с — как (х
+ 4, у + 2
), вершины D — как (х + 4, у).

                                Рисунок 13

Чтобы
изобразить отрезок АВ, воспользуемся командой сместиться на вектор (0, 2).

В результате
чертёжник сдвинет перо из точки с координатами (х, у) в точку с
координатами (х + 0, у + 2).

По команде
сместиться на вектор (4, 0) перо окажется в точке (х + 4, у + 2). Чтобы из этой
точки перейти в точку (х + 4, у + 0), следует выполнить команду сместиться на
вектор (0, -2). По команде сместиться на вектор (-4, 0) перо чертёжника
прочертит отрезок к точке А:

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

Сместиться в точку (l, 1)

Опустить перо

Сместиться на вектор(0, 2)

Сместиться на вектор(4, 0)

Сместиться на вектор(0, -2)

Сместиться на вектор(-4, 0)

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

Сместиться в точку (5, 5)

С помощью
команды абсолютного смещения рисунок «привязывается» к строго определенным
точкам координатной плоскости. Она используется чаще всего для установки
начального положения пера чертёжника.

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

Использование
вспомогательных алгоритмов

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

                                        
Рисунок 14

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

Алгоритм рисования цифры 0
может иметь вид:
опустить перо

сместиться на вектор (0, 2)

сместиться на вектор (1,
0)

сместиться на вектор (0, -2)

сместиться на вектор (-1, 0)

поднять перо

сместиться на вектор (2, 0)

Для рисования цифры 6 можно
использовать алгоритм:
сместиться на вектор (1, 2)

опустить перо

сместиться на вектор (-1, -1)

сместиться на вектор (1, 0)

сместиться на вектор (0, -1)

сместиться на вектор (-1, 0)

сместиться на вектор (0, 1)

поднять перо

сместиться на вектор (2, -1)

Допустим, чертёжнику
необходимо разработать алгоритм рисования почтового индекса города Красноярска — 660000.

Самый простой вариант —
составить очень длинный алгоритм, в котором дважды повторить рисование цифры 6
и четырежды — цифры 0.

Но есть и другой способ.
Оказывается, чертёжник может «запомнить», как рисуется та или иная цифра. Для
этого алгоритм рисования цифр 0 и 6 нужно оформить в виде вспомогательного
алгоритма
.

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

Вспомогательный алгоритм
рисования цифры 0 будет выглядеть так:
алг цифра_0
нач
     
опустить перо

     сместиться
на вектор (0, 2)

     сместиться
на вектор (1, 0)

     сместиться
на вектор (0, -2)

     сместиться
на вектор (-1, 0)

     поднять
перо

     сместиться
на вектор (2, 0)

кон

Строка алг цифра_о называется заголовком
алгоритма
. Имя алгоритма — цифра 0. Алгоритм рисования буквы помещается
чуть правее между служебными словами нач и кон.

Вспомогательный алгоритм
рисования цифры 6 оформите самостоятельно.

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

В среде Кумир основной
алгоритм для изображения индекса 660000 будет выглядеть так:

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

алг индекс Красноярска

нач
     цифра_6
     цифра_6
     цифра_0
     цифра_0
     цифра_0
     цифра_0
кон

Цикл повторить n раз

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

Например,
программу рисования ряда из пяти ромбов (рис. 15) с помощью конструкции
повторения можно записать так:

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

алг ряд ромбов

нач
     
сместиться в
точку (1,2)

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

          сместиться
на вектор (1, 2)

          сместиться
на вектор (1, -2)

          сместиться
на вектор (-1, -2)

          сместиться
на вектор (-1, 2)

          поднять перо

          сместиться
на вектор (3, 0)

     кц
кон

               
Р
исунок
15

Рисование ромба можно оформить
в виде вспомогательного алгоритма:
алг ромб
нач
     сместиться на вектор (1, 2)

     сместиться
на вектор (1, -2)

     сместиться
на вектор (-1, —2)

     сместиться на вектор (-1, 2)

кон

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

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

алг ряд ромбов_1

нач
     сместиться в точку (1,2)

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

          ромб
          поднять перо

          сместиться
на вектор (3, 0)

     кц
кон

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

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

<тело цикла>

Кц

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

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

Задания рассчитаны на
группу в 10 человек. Каждая карточка содержит по три задания разного уровня
сложности.

Вариант 1

1. Начертите красным цветом контур буквы «А».
Размеры буквы – произвольные.

2. Составьте программу рисования
прямоугольника со сторонами, параллельными осям координат, и вершинами в точках
(2; -2) и (-1; 5).

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 1

Вариант 2

1. Начертите желтым цветом контур буквы «Д».
Размеры буквы – произвольные.

2. Составьте программу рисования квадрата с
вершинами, лежащими на осях координат. Координаты одной из вершин (0; 11).

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 2

Вариант 3

1. Начертите синим цветом контур буквы «М».
Размеры буквы – произвольные.

2. Составьте программу рисования ромба с
вершинами, лежащими на осях координат. Координаты двух вершин (-5; 0) и (0;
18).

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 3

Вариант 4

1. Начертите голубым цветом контур буквы «Ж».
Размеры буквы – произвольные.

2. Составьте программу, в результате которой
будет нарисован прямоугольный треугольник со сторонами 8, 10 и 6 единиц.
Координаты вершины прямого угла треугольника (1; 2), катеты параллельны осям
координат, треугольник располагается в первой четверти координатной плоскости.

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 4

Вариант 5

1. Начертите фиолетовым цветом контур буквы
«Щ». Размеры буквы – произвольные.

2. Составьте программу рисования ромба с
диагоналями длиной 5 и 10 единиц, параллельными осям координат. Координаты
центра ромба (15; 15). Большая ось ромба параллельна ось Х.

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 5

Вариант 6

1. Начертите белым цветом контур буквы «Ц».
Размеры буквы – произвольные.

2. Составьте программу рисования
равнобедренного треугольника, если координаты его вершины при равных сторонах
равны (5; 8), длина высоты, проведенной из этой вершины, равна 6. Высота
параллельна оси Х.

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 6

Вариант 7

1. Начертите зеленым цветом контур буквы «Й».
Размеры буквы – произвольные.

2. Составьте программу рисования
параллелограмма, две стороны которого параллельны оси У и равны 10 единиц.
Координаты двух его вершин (2; 0) и (4; 2).

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 7

Вариант 8

1. Начертите оранжевым цветом контур буквы
«К». Размеры буквы – произвольные.

2. Составьте программу рисования параллелограмма,
две стороны которого параллельны оси Х. Координаты трех его вершин (0; 0), (6;
0), (4; 6).

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

Кумир - - Исполнитель Чертежник - Алгоритм рисования простой фигуры 8

Вариант 9

1. Начертите синим цветом контур буквы «Ъ».
Размеры буквы – произвольные.

2. Составьте программу рисования
равнобедренной трапеции, симметричной относительно оси У, две стороны которой параллельны
оси Х. Координаты двух ее вершин (12; 1) и (-7; 5).

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 9

Вариант 10

1. Начертите желтым цветом контур буквы «Ы».
Размеры буквы – произвольные.

2. Составьте программу рисования
прямоугольного треугольника, катеты которого лежат на осях координат. Медиана,
проведенная из прямого угла, заканчивается в точке с координатами (2; 2) и
является также и высотой.

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

Кумир - Исполнитель Чертежник - Алгоритм рисования простой фигуры 10

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

1.     Босова Л.Л. Информатика: уч. для 9 кл. –2-е изд., испр. – М.:
БИНОМ. Лаборатория знаний, 2014

2.     Камалова Н.А.http://festival.1september.ru/articles/594645/

3.     Нурмухамедов Г.М. Информатика. Теоретические основы: учеб. Пос.
для подготовки к ЕГЭ. – СПб.: БХВ-Петербург, 2012

4.     Поляков К.Ю., Еремин Е.А. Информатика. Углубленный уровень: уч.

5.     для 10кл.: в 2 ч. Ч.1. – М.: БИНОМ. Лаборатория знаний, 2013

6.     Семакин И.Г., Залогова Л.А., Русаков С.В. Информатика и ИКТ: уч.
для 9 кл. – М.: БИНОМ. Лаборатория знаний, 2012

7.     Сухих Н.А.Поурочные разработки по информатике: 9 класс. –М.: ВАКО,
2012.

8.     https://murnik.ru/upravlenie-ispolnitelem-chertjozhnik

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

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

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

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

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

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

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

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

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

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

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

Занятие 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. справа стена или справа не свободно

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

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

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

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

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

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

алг

нач

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

вправо

закрасить

кц

кон

Конструирование алгоритмов

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

Существуют различные методы конструирования
(разработки, построения) алгоритмов. Мы познакомимся с одним из них — методом последовательного построения (уточнения) алгоритма. Иначе он называется методом разработки «сверху вниз», нисходящим
методом или методом пошаговой детализации.

Процесс последовательного построения алгоритма
выглядит следующим образом.

На первом шаге мы считаем, что перед нами
совершенный исполнитель, который «всё знает и всё умеет». Поэтому достаточно определить исходные данные и результаты алгоритма, а сам алгоритм представить в виде единого предписания — постановки
задачи (рис. 2.4).

Рис. 2.4.
Линейный алгоритм, являющийся результатом первого этапа детализации задачи

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

Для этого:

• задачу разбивают на несколько частей, каждая из
которых проще всей задачи;

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

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

Процесс продолжается до тех пор, пока все
предписания не будут понятны исполнителю.

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

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

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

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

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

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

Составим алгоритм, под управлением которого Робот
закрасит все клетки этого коридора и вернётся в исходное положение.

Представим план действий Робота следующими
укрупнёнными шагами (модулями):

Детализируем каждый из пяти модулей.

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

влево

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

кц

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

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

вправо

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

кц

Под управлением этого алгоритма Робот окажется в
исходной клетке.

3. Выполнив команду вправо, Робот пройдёт исходную
клетку и займёт клетку правее исходной. Теперь можно закрашивать клетки коридора, расположенные правее исходной.

вправо

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

кц

4. Так как, выполнив предыдущий алгоритм, Робот
оказался правее коридора, командой влево вернём его в коридор. Возвращение в исходную клетку обеспечивается алгоритмом:

влево

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

кц

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

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

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

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

Пример 1. В среде КуМир составим алгоритм для исполнителя Робот, под
управлением которого он нарисует узор:

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

При представлении алгоритмов с помощью блок-схем для
обозначения команды вызова вспомогательного алгоритма используется блок «предопределённый процесс» (рис. 2.5), внутри которого записывается название (имя) вспомогательного алгоритма, после
которого в скобках перечисляются параметры — входные данные и результаты.

Рис. 2.5. Блок «предопределённый
процесс»

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

Пример 2. Вспомним алгоритм вычисления степени с натуральным показателем
у = аn. Соответствующая блок-схема:

Степень с целым показателем у = ах, где х
— целое число, а ≠ 0 вычисляется так:

В приведённой записи дважды фигурирует вычисление
степени с натуральным показателем. Поэтому в алгоритм вычисления степени с целым показателем можно включить вызов вспомогательного алгоритма вычисления степени с натуральным показателем.
Соответствующая блок-схема:

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

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

Команда вызова вспомогательного алгоритма
исполняется следующим образом (рис. 2.6):

1) формальные входные данные вспомогательного алгоритма заменяются
значениями фактических входных данных, указанных в команде вызова вспомогательного алгоритма;

2) для заданных входных данных исполняются команды вспомогательного
алгоритма;

3) полученные результаты присваиваются переменным с именами
фактических результатов;

4)  осуществляется переход к следующей команде основного
алгоритма.

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

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

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

Пример 3. Алгоритм вычисления степени с натуральным показателем п для
любого вещественного числа а можно представить в виде рекурсивного:

Число а в степени n (n-я степень числа а) есть не
что иное, как произведение аn-1 • а; в свою очередь, аn-1 = аn-2 • а и т. д.

Пример 4. Рекурсивный алгоритм положен в основу эффективного решения
головоломки «Ханойская башня».

Интерактивная игра «Ханойские башни» (195747)
поможет вам вспомнить условие и алгоритм решения головоломки (http://sc.edu.ru/).

Пример 5. Рассмотрим алгоритм построения геометрической фигуры, которая
называется снежинкой Коха. Шаг процедуры построения состоит в замене средней трети каждого из имеющихся отрезков двумя новыми такой же длины, как показано на рисунке:

С каждым шагом фигура становится всё причудливее.
Граница снежинки Коха — положение кривой после выполнения бесконечного числа шагов.

Попробуйте подсчитать, сколько рёбер в границе
снежинки Коха после четвёртого шага; после пятого шага.

Понравилась статья? Поделить с друзьями:
  • Как найти основание равнобедренной трапеции 8 класс
  • Как найти дешевый отель в адлере
  • Как найти массу кристаллогидрата в растворе
  • Ворд сбой активации продукта как исправить на виндовс 10 без активации
  • Как найти затраченное тепло