Информатика и ИКТ
Школьный интернет-учебник М.А. и М.В. Выграненко

Тема 9: Алгоритмы и исполнители (30 часов)

Урок ? 26(70): Вспомогательный алгоритм и подпрограммы

Практические, проверочные и домашние работы

pdf Практическая работа  "Вспомогательный алгоритм"

pdf Практическая работа 27 "Вспомогательный алгоритм на Basic-256"

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

П р и м е р. Вы хотите спеть песню, у которой три куплета и припев, исполняемый после каждого куплета. Алгоритм Ваших действий будет следующим:
1. Спеть 1-й куплет.
2. Спеть припев.
3. Спеть 2-й куплет.
4. Спеть припев.
5. Спеть 3-й куплет.
6. Спеть припев.
(В какой форме представлен этот алгоритм?)
Как видите, действия, объединенные в пункт "спеть припев", трижды повторяются. Таким образом, этот алгоритм содержит набор повторяющихся одинаковых действий. (Приведите аналогичные примеры, возникающие при решении научных задач и в жизненных ситуациях).
Когда при составлении алгоритма возникает необходимость многократного использования одного и того же набора действий или уже готового алгоритма (составленного раньше, возможно, кем-то другим), то такой набор действий или алгоритм выделяют в качестве самостоятельного фрагмента. Он становится вспомогательным алгоритмом.

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

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

Свойства вспомогательного алгоритма:
1. При соответствующем оформлении любой алгоритм может быть вспомогательным.
2. Вспомогательный алгоритм - необязателен (ведь и в Москву из Новосибирска можно прийти пешком). (Какими алгоритмическими и программными средствами он может быть заменен?)

Преимущества вспомогательного алгоритма - он позволяет:

  • экономить время;

  • экономить силы;

  • уменьшить количество ошибок.

Метод пошаговой детализации алгоритмов

Многие задачи, которые ставит жизнь, требуют составления очень сложных алгоритмов и программ их реализации. Бывает очень трудно, а часто и невозможно составить их одному человеку. Например, одна из программ расчета посадки американцев на Луну содержала 23 миллиона команд. Поэтому решение сложных задач принято разбивать на части, а затем отдельные алгоритмы объединять в единое целое. И здесь инструмент вспомогательного алгоритма очень выгоден.

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

Определение подпрограммы

Инструментом вспомогательного алгоритма при составлении программ является подпрограмма.

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

Достоинства подпрограмм:

  • возможность неоднократного обращения;

  • возможность использования в других программах;

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

  • облегчение работы с чужими программами.

Существует два вида подпрограмм: подпрограммы-функции (стандартные функции и функции пользователя) и подпрограммы-процедуры (для неоднократного выполнения какого-либо законченного фрагмента алгоритма). В Basic-256 реализованы только стандартные функции и подпрограммы-процедуры.

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

Обычно основная программа отделяется от подпрограммы оператором end (конец программы).

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

print "Нажмите клавишу и узнайте её код"

rem Цикл, который будет работать, пока не нажмут клавишу Esc (код 27)

While (key<>27)

rem Считывание кода нажатой клавиши

   a = key

   if a<>0 then print a

End While
 

Команда Формат Описание
Gosub gosub метка Обеспечивает переход к подпрограмме, обозначенной меткой
Return return Передаёт управление туда, откуда была вызвана подпрограмма
End end Прекращает выполнение программы (стоп)
Key key Немедленно возвращает целое число, соответствующее нажатой на клавиатуре клавиши.
Refresh refresh Обновляет окно графического вывода показывая все графические объекты, изменившиеся с последнего запуска refresh. Эта команда работает только в режиме FastGraphics.
Fastgraphics fastgraphics Включает режим быстрой графики (fastgraphics mode), который действует до завершения программы. Режим быстрой графики означает, что экран графического вывода не обновляется, пока не будет вызвана команда Refresh. Это существенно ускоряет вывод сложной анимации и предотвращает мерцание.

Приложения

И.Г. Семакин и др.  29 [2]

Начало \ Программа 8-9 \ Тема 9 \ Урок 26(70)


При использовании материалов сайта просьба соблюдать приличия
© М.А. и М.В. Выграненко, 2009-2016

Рейтинг@Mail.ru