Всего на сайте:
183 тыс. 477 статей

Главная | Информатика

Понятие подпрограммы. Способы реализации подпрограмм на Паскале  Просмотрен 38

Создание и использование функций пользователя

План.

1. Понятие подпрограммы. Способы реализации подпрограмм на Паскале

2. Описание и использование функций

Понятие подпрограммы. Способы реализации подпрограмм на Паскале

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

B
Например: пусть требуется определить площадь выпуклого четырехугольника ABCD, заданного длинами своих сторон l1, l2, l3, l4 и одной из диагоналей.

 

l4
l3
d
l2
l1
D
C
A

 

Площадь четырехугольника в данном случае можно определить как сумму площадей треугольников ABD и BCD, вычисленных по формуле Герона , где – полупериметр, a, b, c – длины сторон.

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

Для более эффективной обработки подобных алгоритмов вводится понятие подпрограммы.

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

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

При использовании в алгоритме подпрограммы (вспомогательного алгоритма) сама подпрограмма оформляется в виде отдельного алгоритма, а вызов ее из основного алгоритма оформляется блоком подпрограммы.

Так для поставленной выше задачи алгоритм решения примет вид (слева – основной алгоритм, справа – вспомогательный):

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

В основном алгоритме происходит обращение к вспомогательному алгоритму, которое оформляется в блоке вспомогательного алгоритма.

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

Заголовок подпрограммы начинается со слова procedure или function, за которым указывается имя подпрограммы и список формальных параметров – перечень имен для обозначения исходных данных и результатов работы с указанием их типа.

В подпрограмме могут использоваться:

1) все имена, объявленные в программе до описания данной подпрограммы;

2) имена, объявленные в самой подпрограмме, включая формальные параметры.

Имена, объявленные в подпрограмме называются локальными, а объявленные в программе и объемлющих подпрограммах – глобальными.

При использовании подпрограммы-функции важно помнить:

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

2. Вызов функции осуществляется путем размещения ее имени со списком фактических параметров.

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

Пример: пусть требуется определить наибольший общий делитель трех величин x, y, z. Идея решения состоит в следующем математическом факте: если х, у, z — три натуральных числа, то НОД(х, у, z) = НОД(НОД(х, у), z). Иначе говоря, нужно найти НОД двух величин, а затем НОД полученного значения и третьего числа. Очевидно, что вспомогательным алгоритмом для решения поставленной задачи является алгоритм получения наибольшего общего делителя двух чисел. Эта задача решается с помощью известного алгоритма Евклида.

Для поставленной задачи алгоритм решения примет вид (слева – основной алгоритм, справа – вспомогательный):

Предыдущая статья:Темы для эссе Следующая статья:В разделе операторов функции хотя бы раз имени функции должно быть присвоено значение.
page speed (0.352 sec, direct)