Если в программе возникает необходимость частого обращения к некоторой группе операторов, выполняющих действия или вычисляющих значение какого-либо выражения, то рационально сгруппировать такую группу операторов в самостоятельный блок, к которому можно обращаться, указывая его имя.
Такие блоки, разработанные программистом, называются подпрограммами. Они являются основой модульного программирования. Разбивая задачу на части и формируя логически обособленные модули подпрограммы (процедуры и функции), программист реализует основные принципы широко пользуемого в практике системного подхода и методов нисходящего программирования.
При вызове подпрограммы (упоминании имени подпрограммы в тексте основной программы), работа главной программы на некоторое время приостанавливается и начинает выполняться вызванная подпрограмма. Она обрабатывает данные, переданные ей из главной программы. По завершении выполнения подпрограмма-функция передает главной программе результат, подпрограмма-процедура не возвращает какого- либо явного скалярного значения, но выполняет какие- либо действия.
Передача данных из главной программы в подпрограмму и возврат результата выполнения функции осуществляются с помощью параметров.
Параметром называется переменная, которой присваивается некоторое значение в рамках указанного применения.
Различают формальные параметры- параметры, определенные в заголовке подпрограммы, и фактические параметры — параметры, задающие конкретные значения при обращении к подпрограмме. При обращении к подпрограмме ее формальные параметры замещаются фактическими, переданными из главной программы.
Вопросы по написанному:
Что такое подпрограмма. Разновидности подпрограмм.
Что такое вызов подпрограммы.
Как осуществляется работа подпрограммы.
Что такое параметр. Разновидности параметров.
Процедура- именованная часть программы, которую можно вызвать по имени для выполнения каких- либо действий.
Функция- именованная часть программы, которую можно вызвать по имени, возвращающая в точку вызова скалярное значение.
Зам! Функция может входить в выражение как операнд, а процедура НЕТ!
Существуют стандартные процедуры и функции и пользовательские. Все стандартные подпрограммы хранятся в библиотечных модулях, свои собственные подпрограммы пользователь описывает в разделе описания процедур и функций по определенным правилам.
Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и, необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Тело процедуры представляет собой отдельный блок, по структуре аналогичный программе:
procedure <имя> (список формальных параметров);
const…;
type …;
var …;
begin
<операторы>
end;
Функция, определенная пользователем, состоит из заголовка и тела функции, заголовок содержит зарезервированное слово function, идентификатор функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Тело функции представляет собой отдельный блок, по структуре аналогичный программе:
function <имя>(Формальные параметры) : <тип результата>;
const ...;
type
var ...;
begin
<операторы>
end;
В разделе операторов должен находиться, по крайней мере, один оператор, присваивающий имени функции какое-либо значение. В точку вызова возвращается результат последнего присваивания.
Все переменные, постоянные, типы и т.д., описанные внутри подпрограммы называются локальными и действительны только в пределах описанного блока, и блоках содержащихся внутри него. Переменные, постоянные и типы, описанные в основной программе, называются глобальными.