Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Подпрограммы с параметрами




Begin end;

Начало раздела описания логики процедуры

Раздел описания логики процедуры

Конец раздела описания логики процедуры

Функции — это процедуры, которые возвращают значения. Благодаря этому их можно использовать в арифметических или логических выра­жениях, наряду с переменными или константами. Структура функции аналогична структуре процедуры, за исключением заголовка, в котором указывается, значение какого типа возвращает функция. Вместо ключе­вого слова Procedure в описании функций используется ключевое сло­во Function:

Function <Имя функции>: <Тип возвращаемого значения>;

Для указания компилятору, какое именно значение должна возвращать функция, в разделе описания логики функции должно использоваться присвоение следующего вида:

<Имя функции>:= <3начение>;

В Delphi предусмотрен еще один механизм возврата значения функции в вызывающую подпрограмму — ключевое слово Result:

Result:= <3начение>;

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

Листинг 4.1. Модуль с описанием подпрограмм

Unit Subprograms; (Заголовок модуля содержит название, по которому модуль подключается к программе)

 

Interface {Начало интерфейсной секции}

Procedure RunMe; (Заголовок процедуры RunMe, которая должна быть реализована в описательной секции и будет доступна в подключающем модуле}

 

Function GetValue: Integer; (Заголовок функции GetValue, которая должна быть реализована в описательной секции и будет доступна в подключающем модуле)

Implementation {Начало описательной секции)

Procedure RunMe;

Begin

{Реализация процедуры RunMe}

End;

 

RunMe; GetValue;

V:= GetValue;

(Вызов процедуры RunMe}

{Вызов функции GetValue без анализа

возвращаемого значения}

{Вызов функции GetValue с занесением

возвращаемого значения в переменную V}

Листинг 4.2. Программа, подключающая модуль и вызывающая его подпрограммы

Uses Subprograms; {Подключение модуля Subprograms) Var

V: Integer; {Описание целочисленной переменной}

Begin

RunMe; GetValue;

V:= GetValue;

(Вызов процедуры RunMe}

{Вызов функции GetValue без анализа

возвращаемого значения}

{Вызов функции GetValue с занесением

возвращаемого значения в переменную V}

Подпрограммы с параметрами

Для повышения гибкости подпрограмм и изменения их функционально­сти в некоторых пределах можно использовать параметры — некоторые значения, передаваемые в процедуры и функции для внутреннего исполь­зования. С помощью параметров вызывающая программа имеет возмож­ность изменять ход выполнения подпрограмм тем или иным образом, заложенным в них разработчиком, что существенно расширяет круг их применения.

Object Pascal поддерживает множество видов параметров. Далее рассмот­рены основы использования некоторых из них, а также механизмы их передачи в подпрограммы.

4.2.1. Описание параметров

Описание параметров подпрограмм происходит в их заголовках после имени и имеет следующий вид:

Procedure <Имя> (<Параметр 1>: <Тип параметра 1>;...;

<Параметр 2>: <Тип параметра 2>);

или для функций:

Function <Имя> (<Список параметров>): <Тип значения>;

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

4.2.2. Механизмы передачи параметров в подпрограммы

Delphi поддерживает два механизма передачи параметров в подпрограммы:

1.По значению (от англ. Value parameter — параметр, передаваемый

по значению); 2. По ссылке.

Передача параметров по значению

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

При передаче параметра по значению значение параметра, заданное при вызове подпрограммы, заносится в стек (см. рис. 4.1). Затем подпрограмма выделяет собственную память для локальной переменной, переносит в нее значение параметра, переданное через стек, и обеспечивает доступ к этой локальной переменной через имя параметра. После завершения подпрограммы измененное значение параметра теряется и никак не влияет на данные вызывающего фрагмента. Рассмотрим пример, в котором под­программа изменяет значение параметра, переданного ей по значению (см. листинг 4.3).

Рис. 4.1. Механизм передачи параметров по значению





Поделиться с друзьями:


Дата добавления: 2015-10-19; Мы поможем в написании ваших работ!; просмотров: 998 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2258 - | 2106 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.