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

Материал из Викиверситета

Задачи:

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

1. Изучение материала.

Что такое вспомогательный алгоритм? Решим задачу: пусть требуется составить программу, по которой ГРИС напишет на экране четырехзначное число 1991.

Конечно, можно написать одну длинную программу, по которой исполнитель шаг за шагом нарисует все эти цифры. Но с очевидностью возникает другая идея: поскольку здесь дважды повторяются цифры 1 и 9, нельзя ли сократить работу, написав программу рисования той и другой цифры только один раз? Это действительно можно сделать.

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

Обращение к вспомогательному алгоритму (процедуре). В таком случае программа решения поставленной задачи разделяется на основную программу (основной алгоритм) и процедуры (вспомогательные алгоритмы). Каждая процедура должна иметь свое уникальное имя. Для рассматриваемой задачи имена процедур выберем следующие: ЕДИНИЦА и ДЕВЯТЬ. Тогда в основной программе команды обращения к этим процедурам будут такими:

  • сделай ЕДИНИЦА
  • сделай ДЕВЯТЬ

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

Начальное и конечное состояние ГРИС при вычерчивании каждой цифры будут такими, как показано стрелками (внизу, на восток). У единицы начальное и конечное состояние совпадают. Основная программа:

программа Число 1991
нач
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
прыжок
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
кон
Данный пример познакомил вас с новой командой из СКИ графического исполнителя — командой обращения к процедуре. Ее формат, то есть общий вид, следующий:

сделай <имя процедуры>

Описание вспомогательного алгоритма (процедуры). Теперь необходимо «объяснить» исполнителю, что такое ЕДИНИЦА и что такое ДЕВЯТЬ. Это делается в описаниях процедур (здесь порядок выполнения по столбцам).

[Демонстрация рисования «1919»]

процедура ЕДИНИЦА
нач
поворот
шаг
шаг
шаг
шаг
поворот
поворот
прыжок
прыжок
прыжок
прыжок
поворот
кон

процедура ДЕВЯТЬ
нач
шаг
поворот
шаг
шаг
шаг
шаг
поворот
шаг
поворот
шаг
шаг
поворот
шаг
поворот
поворот
поворот
прыжок
прыжок
поворот
кон

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

Формат описания процедуры

процедура <имя процедуры>
нач
<тело процедуры>
кон
Имя в описании и имя в обращении должны точно совпадать. Описание процедур располагается после основной программы.

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

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

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

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

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

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

[Практическая работа по рисованию «1919»]

Используя вспомогательные алгоритмы, запрограммировать рисование следующих фигур: [Фигуры]

3.Закрепление знаний

  1. Что такое основной алгоритм? Вспомогательный алгоритм?
  2. Чем отличается описание вспомогательного алгоритма от обращения к вспомогательному алгоритму?
  3. Каковы правила описания вспомогательных алгоритмов (процедур) для исполнителя ГРИС?
  4. Как записывается команда обращения к процедуре в языке исполнителя ГРИС?
  5. В чем суть метода последовательной детализации?
  6. Что такое программирование снизу вверх; сверху вниз?

См. также[править]