Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Виды подпрограмм. Процедуры и функции



Подпрограммы в 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...