
Глава 7. Процедуры и функции
7.1. Подпрограммы
При разработке программ часто приходится описывать одни и те же вычисления, но при различных исходных данных. Эти повторяющиеся вычисления выделяют в самостоятельную часть программы, которая может быть использована многократно. Такая автономная часть программы, реализующая определенный алгоритм и допускающая обращение к ней из различных участков общей программы, называется подпрограммой. Подпрограммы оформляются в виде блоков, имеющих четко обозначенный вход и выход.
Использование подпрограмм позволяет реализовать один из самых прогрессивных методов программирования – структурное программирование. Этот метод позволяет создавать модульные программы, которые проще разрабатывать, понимать и использовать.
В языке Турбо Паскаль выделяют два вида подпрограмм: процедура (PROCEDURE) и функция (FUNCTION).
Процедуры и функции могут быть:
1) предопределенные или встроенные, которые являются частью языка и могут употребляться в программе, не будучи описанными (например, Write, Read, sqr, sin и т.д.);
2) введенные пользователем, которые объявляются в разделе описаний вслед за разделом переменных (var).
Программа может содержать несколько процедур и функций.
7.2. Процедура
Подпрограмма – процедура предназначена для выполнения какой–то законченной последовательности действий. Любая процедура оформляется аналогично основной программе (содержит заголовок, разделы описаний и операторов). В отличие от основной программы заголовок в процедуре обязателен.
Формат описания процедуры:
procedure <имя процедуры> (<список формальных параметров>);
раздел
описаний
begin
раздел операторов
end;
Раздел описаний процедуры может содержать подразделы: метки, константы, типы, переменные, процедуры и функции. Раздел описаний в процедуре может отсутствовать.
Для вызова процедуры из основной программы или другой подпрограммы следует записать оператор, состоящий из имени процедуры и списка фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами процедуры.
Формат вызова процедуры:
<имя процедуры> (<список фактических параметров>);
7.3. Функция
Подпрограмма – функция предназначена для нахождения значения какого – либо параметра. У этой подпрограммы два основных отличия от процедуры.
Первое отличие функции в ее заголовке.
Формат описания функции:
function <имя функции> (<список форм. параметров>):<тип функции>;
раздел
описаний
begin
раздел операторов
end;
Раздел описаний функции может содержать подразделы: метки, константы, типы, переменные, процедуры и функции. Раздел описаний может отсутствовать.
Второе отличие заключается в том, что в теле функции (раздел операторов) хотя бы один раз имени функции должно быть присвоено значение.
Для вызова функции из основной программы или другой подпрограммы следует в выражении, где необходимо использовать значение функции, указать ее имя со списком фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами функции.