Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Osnovy_informatiki_-_7_Parametry_podprogramm

.pdf
Скачиваний:
12
Добавлен:
13.02.2015
Размер:
177.45 Кб
Скачать

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

2012

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

При описании подпрограммы используются формальные параметры

При вызове подпрограммы указываются фактические параметры

В момент вызова подпрограммы происходит передача (подстановка) параметров

2

27.10.2012

Чердынцева М.И. мехмат ЮФУ

Способы передачи параметров

Способ передачи определяет, что будет использовано в качестве формального параметра при выполнении подпрограммы

Два способа передачи:

По значению

По ссылке

В большинстве языков программирования способ передачи определяется при описании подпрограммы (в спецификации формальных параметров)

3

27.10.2012

Чердынцева М.И. мехмат ЮФУ

Спецификация формальных параметров

Для каждого формального параметра определяется

Имя

Тип

Способ передачи

4

27.10.2012

Чердынцева М.И. мехмат ЮФУ

procedure Mean (A: integer; B: real; var MA,MG: real);

Параметры:

A – целого типа, передается по значению

B – вещественного типа, передается по значению

MA, MG –вещественного типа, передаются по ссылке

5

27.10.2012

Чердынцева М.И. мехмат ЮФУ

Формальные параметры

Являются локальными переменными подпрограммы

Область видимости – подпрограмма

Время жизни – от начала выполнения подпрограммы до ее завершения

При вызове подпрограммы (входе) происходит выделение памяти, при завершении (выходе) – освобождение памяти (автоматическая память)

6

27.10.2012

Чердынцева М.И. мехмат ЮФУ

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

Выделяется память для хранения значения фактического параметра.

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

Значение копируется в память, выделенную для формального параметра

7

27.10.2012

Чердынцева М.И. мехмат ЮФУ

Mean (3, 2*C+1, MA1, MG1);

в теле процедуры

A:= 3;

B := real (2*C+1);

8

27.10.2012

Чердынцева М.И. мехмат ЮФУ

Передача по ссылке

Выделяется память для хранения адреса (ссылки) фактического параметра.

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

Обращение к формальному параметру в подпрограмме – обращение к переменной, адрес которой хранится в формальном параметре (косвенная адресация)

9

27.10.2012

Чердынцева М.И. мехмат ЮФУ

Mean (3, 2*C+1, MA1, MG1);

MA:=@MA1;

MG:=@MG1;

10

27.10.2012

Чердынцева М.И. мехмат ЮФУ