Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгоритмы подпрограмм





Лекция 7

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

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

Принцип действия подпрограмм поясняет рис.3.7.1. Когда вычислительный процесс достигнет блока обращения к процедуре PR1, управление передается в процедуру, формальные параметры W,B и Z получат значения фактических параметров A,B и Y и выполняется алгоритм процедуры. После завершения алгоритма процедуры управление возвращается в точку вызова процедуры в главной программе. Аналогично, когда в главной программе встретится обращение к подпрограмме функции FY (блок, в котором вычисляется значение Z) управление будет передано в подпрограмму функцию FY, формальные параметры P и Q получат значения фактических параметров P и T и будет выполнен алгоритм функции FY. При этом имя должно получить значение и это значение будет использоваться в выражении, из которого осуществлялось обращение к подпрограмме.


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

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

Рис.3.7.1

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

 

3.5.1. Подпрограмма процедура.

 

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



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

Рис.3.7.2.

и процедурой.

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

Пример 1. Пусть необходимо вычислять функцию

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

Схема алгоритма главной программы приведена на рис.3.7.3, а схема алгоритма процедуры РВХ представлена на рис.3.7.4.

 

Формальные и фактические параметры делятся на входные и выходные. Входные – это параметры, через которые в подпрограмму передаются значения данных из вызывающей программы (переменные А и Х на рис3.7.3).

Выходные – это параметры, через которые из процедуры возвращаются значения результатов (переменная У).

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

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

3.5.2. Подпрограмма функция.

 

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

1. Результат возвращается из функции через имя функции, поэтому имя функции должно хотя бы один раз встретиться слева от оператора присваивания.

2. Смысл фактических и формальных параметров для функции тот же, что и в случае процедуры, но все параметры функции являются входными.

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

Пример 2. Оформим алгоритм предыдущего примера в виде главной программы и подпрограммы функции с именем PFY. В данном случае списки формальных и фактических параметров будут содержать только две переменные – А и Х, так как результат из подпрограммы функции возвращается через имя функции. Схема алгоритма главной программы приведена на рис.3.7.5, а схема алгоритма подпрограммы функции представлена на рис.3.7.6.

 

Правила и рекомендации.

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

2. Значения входных фактических параметров должны быть определены к моменту обращения к подпрограмме.

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

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

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

где ln(x) – натуральный логарифм. Так как при Х <=0 значение логарифма не определено, то надо предусмотреть проверку Х и при Х<=0 программа должна выдавать сообщение "аргумент логарифма < 0".

Схемы алгоритмов главной программы и процедуры вычисления функции приведены на рис.3.7.7.

Рис.3.7.7.

 

 





Дата добавления: 2014-01-03; Просмотров: 5127; Нарушение авторских прав?


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Рекомендуемые страницы:

Читайте также:
studopedia.su - Студопедия (2013 - 2020) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.003 сек.