Чертежник учится, или использование вспомогательных алгоритмов. Исполнитель Робот. Вспомогательные алгоритмы Алгоритм на языке кумир чертежник

Хирьянов Тимофей Федорович


Алгоритм на языке КуМир записывается так:

алг тип_алгоритма имя_алгоритма (описание аргументов и результатов)
дано условие_применимости_алгоритма
надо цель_выполнения_алгоритма
нач
последовательность команд
кон

Описание алгоритма состоит из:
  • заголовка (часть до служебного слова нач),
  • тела алгоритма (часть между словами нач и кон).
Части "дано", "надо", а также "тип алгоритма" и "описание аргументов и результатов" могут отсутствовать.

Простейшие алгоритмы

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

Пример алгоритма

алг квадрат
нач
опустить перо
сместиться на вектор(0,2)
сместиться на вектор(2,0)
сместиться на вектор(0,-2)
сместиться на вектор(-2,0)
поднять перо
кон

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

Алгоритмы с аргументами

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

Пример алгоритма

алг квадрат (арг вещ а)
нач
опустить перо
сместиться на вектор(0, а)
сместиться на вектор(а, 0)
сместиться на вектор(0, -а)
сместиться на вектор(-а, 0)
поднять перо
кон

Слово арг означает, что у алгоритма есть аргумент (а), а вещ — то, что этот аргумент имеет вещественный тип. Команда вызова такого алгоритма может иметь вид

(в этом случае будет нарисован квадрат 2x2) или, например,
(в этом случае будет нарисован квадрат 5x5).

Алгоритмы с результатами

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

Пример алгоритма с результатами

алг гипотенуза (вещ a, b, рез вещ c)
дано a >= 0 и b >= 0 | длины катетов треугольника
надо | c = длинa гипотенузы этого треугольника
нач
c:= sqrt(a ** 2 + b ** 2)
кон

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

гипотенуза(3, 4, c)

Величина c примет значение 5.

Алгоритмы-процедуры и алгоритмы-функции

Рассмотренные выше примеры являются алгоритмами-процедурами . В Кумире также существуют алгоритмы-функции . Алгоритм-функция после выполнения возвращает значение-результат .
Правила описания алгоритмов-процедур и алгоритмов-функций имеют два отличия.
Во-первых, для алгоритмов-функций на месте тип_алгоритма должен быть указан один из простых типов алгоритмического языка (вещ, цел и т.д.), определяющий тип значений, которые возвращает данная функция.
Во-вторых, в теле алгоритма-функции необходимо использовать служебную величину знач , которой присваивается вычисленное значение функции. Ее описанием служит заголовок алгоритма, но в остальном величина знач используется так же, как и любая другая промежуточная величина. (В теле алгоритма-процедуры величину знач использовать нельзя .)
Вызов алгоритма-процедуры является отдельной командой алгоритмического языка и имеет вид:

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

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

использовать Чертежник
алг квадраты 1
нач
. сместиться в точку (-4,1)
. опустить перо
. сместиться на вектор (0,2)
. сместиться на вектор (2,0)
. сместиться на вектор (0,-2)
. сместиться на вектор (-2,0)
. поднять перо

. сместиться в точку (-1,1)
. опустить перо
. сместиться на вектор (0,2)
. сместиться на вектор (2,0)
. сместиться на вектор (0,-2)
. сместиться на вектор (-2,0)
. поднять перо

. сместиться в точку (2,1)
. опустить перо
. сместиться на вектор (0,2)
. сместиться на вектор (2,0)
. сместиться на вектор (0,-2)
. сместиться на вектор (-2,0)
. поднять перо

. сместиться в точку (0,0)
кон

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

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

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

использовать Чертежник
алг квадраты
нач
. сместиться в точку (-4,1)
. квадрат
. сместиться в точку (-1,1)
. квадрат
. сместиться в точку (2,1)
. квадрат
. сместиться в точку (0,0)
кон
алг квадрат
нач
. опустить перо
. сместиться на вектор (0,2)
. сместиться на вектор (2,0)
. сместиться на вектор (0,-2)
. сместиться на вектор (-2,0)
. поднять перо
кон

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

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

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

Метод последовательной детализации

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

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

Сборочный метод

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

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

Описанный метод называется сборочным программированием.

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

Задание 1. Измените полученный алгоритм, так чтобы рисовалось 5, 7 или 10 квадратов.

Задание 2. Составьте программы лес, используя вспомогательный алгоритм елка, и улица, используя вспомогательный алгоритм домик.


Задание 3. Цифры в почтовом индексе записываются следующим образом:

Составьте вспомогательные алгоритмы рисования этих цифр. Можно сделать это с одноклассниками - каждому по цифре, а потом объедините их вместе.
Составьте программу рисования индексов городов Унеча (243300), Елец (399770), Таганрог (347900), Торжок (172011), Плёс (155555). В программе используйте вспомогательные алгоритмы.

СХЕМА УРОКА ИНФОРМАТИКИ

Тема занятия

«Использование вспомогательных алгоритмов для Чертёжника»

Возраст обучающихся

1 2 лет (6 класс)

Тип урока

Усвоения новых знаний

Форма урока

Модульный урок

Цель урока:

Формировать представление учащихся о понятии «вспомогательный алгоритм» как об одном из способов оптимизации программного кода

Задачи урока:

    развить представления учащихся об исполнителях

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

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

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

Планируемые результаты

предметные – умения разработки алгоритмов для управления исполнителем;

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

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

Материально-техническое оснащение (дидактические средства и т.п.)

Учителю: презентация урока; раздаточный материал

Ученику: ручка шариковая, карандаш, линейка, учебник, рабочая тетрадь

УМК (видеоряд)

Мультимедийная презентация, раздаточный материал для каждого ученика: технологическая карта урока, лист приложений

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

Информатика: методическое пособие для 5-6 классов/Л.Л. Босова, А.Ю. Босова. – М.: Бином. Лаборатория знаний, 2014

Информатика: Учебник для 6 класса/Л.Л. Босова, А.Ю. Босова. – М.: Бином. Лаборатория знаний, 2013

Информатика: Рабочая тетрадь для 6 класса/Л.Л. Босова, А.Ю. Босова. – М.: Бином. Лаборатория знаний, 2013

Тема: Вспомогательные алгоритмы для Чертёжника

Технологическая карта (модуль) урока

Рейтинговая оценка

(мах. балл)

УЭ – 0

2 мин.

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

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

    будете совершенствовать свои умения и навыки работы в среде программирования КуМир

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

УЭ – 1

Актуализация опорных знаний.

Цель : актуализировать полученные знания

Задание 1.

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

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

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

Задание 2.

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

алг

нач

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

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

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

кон

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

алг

нач

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

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

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

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

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

кон

Внимательно прочитайте цель УЭ – 1

Работайте в модуле в паре

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

Правильно выполненное задание 1 оценивается в 3 балла, по 1 баллу за каждый пункт (а, б, в)

Правильно выполненное задание 2 оценивается в 2 балла, по 1 баллу за каждый пункт (а, б)

Максимальное количество баллов за работу с УЭ-1 = 5

____________

УЭ – 2

Изучение нового материала.

13 мин.

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

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

    Определите недостатки такого алгоритма:

_________________________________

_________________________________

_________________________________

_________________________________

    Как можно избежать перечисленных трудностей

_________________________________

_________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

Внимательно прочитайте цель УЭ – 2

Индивидуальная работа с заданиями 1 – 3

При работе с пунктом 4 воспользуйтесь материалом, изложенным в параграфе 18 вашего учебника (стр. 123 – 125), презентацией учителя

Обсуждение пунктов 1 - 4 – групповая работа во фронтальном режиме

Задание 5 – 6 выполните индивидуально

9

Оценка заданий

Задание 1-2 выполнено верно по 1 баллу

____________

В задании 3 указано хотя бы 3 недостатка – 1 балл

_____________

В задании 4 указаны способы решения проблемы:

1 способ = 1 балл, 2 способа = 2 балла

_____________

Задание 5. На координатной плоскости расположены 6-8 звезд, размер которых соответствует «Звездочке» - 1 балл

____________

Составлен основной алгоритм «Космос» - 3 балл

____________

УЭ – 3

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

Цель: Формировать умение работать со вспомогательными алгоритмами в среде программирования КуМир

Задание 1. Реализуйте составленный вами алгоритм в системе программирования КуМир

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

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

б) дополните ваш алгоритм кодом летательного аппарата, реализуйте в системе программирования КуМир

Внимательно прочитайте цель УЭ – 3

Индивидуальная работа с заданиями

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

Пример можно подсмотреть в приложении 1

Максимальное количество баллов за работу с УЭ-2 = 6

Правильно выполненное задание 1 оценивается в 2

Задание 2 (творческое) выполненное полностью оценивается в 4 баллов

_____________

УЭ – 4

Рефлексия

Цель: Проанализировать свои достижения на уроке

Дайте ответ на каждый вопрос

1. Прочитайте еще раз цели урока

2. Достигли ли вы заданных целей?

__________________________________

3. Что мешало достижению целей?

__________________________________

4. Что показалось наиболее трудным?

__________________________________

5. Что не вызывало затруднений?

__________________________________

6. Как вы оцениваете свою работу?

7.Вы набрали меньше 20 баллов? (если «да», то поработайте дома и у вас есть шанс пройти повторное тестирование). Желаю удачи!

Домашнее задание:

Просмотри все записи сделанные на уроке.

§18(3), №6 на стр. 128; №216.

Внимательно прочитайте цель УЭ – 4

Ответьте на вопросы

Подсчитайте количество баллов, поставьте себе оценку (Приложение 2, Приложение 3)

ПРИЛОЖЕНИЯ

Приложение 1

Пример, выполненного задания

Приложение 2

Лист контроля

Фамилия, Имя ______________________________________________

Приложение 3

17 -19

(85 – 99%)

высокий

Ты просто молодец!

15 - 16

(75 – 84 %)

средний

Еще чуть-чуть и будет «5»

10 - 14

(50 – 74%)

низкий

Будьте внимательнее

1 - 9

(0,7 – 49%)

очень низкий

И о чем Вы думаете на уроке?

нулевой

Вы не присутствовали на уроке?

Ответы

УЭ – 1

Задание 1. Начальное положение Чертёжника – точка А, в какую точку он сместиться, выполнив команду:

а) сместиться в точку (5,2) ____ F ______

б) сместиться на вектор (3,4) __ C ______

в) сместиться в точку (1,4) ____ A ______

Задание 2. Начальное положение Чертёжника – начало координат, перо поднято. Выполните алгоритм и определите, какую фигуру он нарисует.

а) НИЧЕГО, НЕ БЫЛО КОМАНДЫ ОПУСТИТЬ ПЕРО

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

алг

нач

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

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

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

кон

б) КВАДРАТ

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

алг

нач

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

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

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

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

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

кон

УЭ – 2

    Как должен измениться алгоритм, если Чертежнику необходимо нарисовать звездное небо, на котором 20, 50, 1000 звезд?

В нем станет больше команд

    Сколько строк займет алгоритм для 10 звезд?

    Определите недостатки такого алгоритма: громоздкий, дублирование, большая вероятность допустить ошибку

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

    На координатной плоскости расположите 6 – 8 звезд, размер каждой должен соответствовать звездочке, которую вы рисовали на прошлом уроке

    Запишите основной алгоритм «Космос», используя в качестве вспомогательного алгоритма алгоритм «Звездочка»

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

алг космос

нач

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

звездочка

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

звездочка

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

звездочка

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

звездочка

ракета

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

звездочка

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

звездочка

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

звездочка

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

звездочка

кон

алг звездочка

нач

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

установить цвет ("желтый")

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

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

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

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

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

поднять перо

кон

алг ракета

нач

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

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

установить цвет ("красный")

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

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

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

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

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

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

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

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

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

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

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

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

поднять перо

Разделы: Информатика

Цели урока:

  • закрепить представления учащихся об исполнителях алгоритмов;
  • научить учащихся управлять исполнителем Чертежник с использованием вспомогательных алгоритмов;
  • сформировать умение записи, исполнения и отладки алгоритмов с использованием команд Чертежника в среде «Кумир»

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

  • система Кумир;
  • мультимедийный проектор;
  • презентация урока (приложение 1)
  • карточки-задания;
  • компьютеры.

Ход урока

1. Проверка домашнего задания.

  • Блиц-опрос учащихся на знание основных определений: исполнитель, формальный исполнитель, неформальный исполнитель.
  • Ученики приводят примеры неформальных и формальных исполнителей.

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

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

Вспомогательный алгоритм – это подпрограмма, которая выполняет какое-то действие, предусмотренное исходным заданием (слайд 2).

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

  1. Построим алгоритм «Забор»
  2. Построим алгоритм «Ель»
  3. Соединим два алгоритма и применим Цикл N раз.

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

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

Общий вид цикла:

нц <количество раз> раз
<тело цикла (последовательность команд)>
кц (слайд 4).

2. Проработка содержания темы обучающимися:

Задание: Создать следующий рисунок в программе Кумир, используя исполнитель Чертежник (слайд 3).

использовать Чертежник
алг
нач
нц 10 раз
забор
кц
поднять перо
сместиться на вектор (-36,10)
нц 5 раз
опустить перо
ель
кц
кон

алг забор
нач
опустить перо
сместиться на вектор (0,10)
сместиться на вектор (2,2)
сместиться на вектор (2,-2)
сместиться на вектор (0,-10)
кон

алг ель
нач
опустить перо
сместиться на вектор (0,15)
нц 5 раз
сместиться на вектор (-2,-2)
поднять перо
сместиться на вектор (2,0)
опустить перо
кц
нц 5 раз
поднять перо
сместиться на вектор (2,0)
опустить перо
сместиться на вектор (-2,2)
кц
поднять перо
сместиться на вектор (8,-15)
кон

Дополнительное задание: Создать вспомогательный алгоритм «ДОМ» и дополнить картинку (слайд 7).

4. Домашнее задание: повторить конспект (придумать свои рисунки с применением вспомогательного алгоритма).

Похожие публикации