Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Подпрограммы в Delphi, как и в Pascal, представлены процедурами и функциями.
Процедура — это логически законченная часть программы, описываемая отдельно от раздела описания логики программы и вызываемая по ее уникальному имени. Процедуры, так же как и программа, имеют сложную структуру, включающую в себя разделы описания переменных, констант, типов, и так далее (все они называются локальными, так как их область видимости ограничена процедурой). Единственное чем отличается по структуре процедура от программы — в ней нет раздела подключения модулей.
Procedure <Имя> (<Список формальных параметров>);
{Заголовок процедуры}
Label
{Раздел описания локальных меток безусловного перехода}
Const
{Раздел описания локальных констант}
Type
{Раздел описания локальных типов данных}
Var
{Раздел описания локальных переменных}
{Раздел описания локальных подпрограмм — процедур и функций,
содержащих некоторые элементы логики процедуры}
Procedure <Имя> (<Список формальных параметров>);
< Тело процелуры>;
Function <Имя> (<Список формальных параметров>):
<Тип возвращаемого значения>;
< Тело функции>;
Begin {Начало раздела описания логики процедуры}
{Раздел описания логики процедуры}
End; {Конец раздела описания логики процедуры}
Функции — это процедуры, которые возвращают значения. Благодаря этому их можно использовать в арифметических или логических выражениях, наряду с переменными или константами. Структура функции аналогична структуре процедуры, за исключением заголовка, в котором указывается, значение какого типа возвращает функция. Вместо ключевого слова Procedure в описании функций используется ключевое слово Function:
Function <Имя функции> (<Список формальных параметров>):
<Тип возвращаемого значения>;
Для указания компилятору, какое именно значение должна возвращать функция, в разделе описания логики функции должно использоваться присвоение следующего вида:
<Имя функции>:= <3начение>;
В Delphi предусмотрен еще один механизм возврата значения функции в вызывающую подпрограмму — ключевое слово Result:
Result:= <3начение>;
Приведем пример модуля, в котором описана одна процедура и одна функция (листинг 2.18), а также программу, которая подключает этот модуль и вызывает подпрограммы, описанные в нем (листинг 2.19).
Листинг 2.18. Модуль с описанием подпрограмм
Unit SubPrograms; {Заголовок модуля содержит название, по которому
модуль подключается к вызывающей программе}
Interface {Начало интерфейсной секции модуля}
Procedure RunMe; {Заголовок процедуры RunMe, которая должна быть
реализована в описательной секции модуля и будет доступна в
подключающей модуль программе}
Function GetValue: Integer; {Заголовок функции GetValue, которая
должна быть реализована в описательной секции модуля и
будет доступна в подключающей модуль программе}
Implementation {Начало описательной секции модуля}
Procedure RunMe;
Begin {Реализация процедуры RunMe}
end;
Function GetValue: Integer;
Begin {Реализация функции GetValue, функция возвращает значение 158}
Result:= 158;
end;
end. {Конец модуля}
Листинг 2.19. Программа, подключающая модуль и вызывающая его подпрограммы.
Program MyProg; {Начало программы]
Uses SubPrograms; {Подключение модуля SubPrograms}
Var
V: Integer; {Описание целочисленной переменной}
Begin
RunMe; {Вызов процедуры RunMe из модуля SubPrograms}
GetValue; {Вызов функции GetValue из модуля SubPrograms без анализа
возвращаемого значения}
V:= GetValue; {Вызов функции GetValue из модуля Subprograms с
занесением возвращаемого значения в переменную V}
End. {Конец программы}
Дата публикования: 2014-11-02; Прочитано: 1292 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!