Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GLAVA_10_Algoritmy_i_programmy.doc
Скачиваний:
7
Добавлен:
22.09.2019
Размер:
797.7 Кб
Скачать

6.12. Подпрограммы

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

Подпрограмма выполняется после ее вызова. Программа, выполнившая вызов подпрограммы, называется главной или вызывающей программой по отношению к подпрограмме.

Подпрограммы могут быть двух типов: функции и процедуры. Обычно подпрограммы обладающие значением называют функцией, а не обладающие значением – процедурой.

Вызов функции может являться операндом в выражении, т.к. возвращает некоторое значение, которое и используется при вычислении значения выражения. Вызов процедуры может записываться только как самостоятельный оператор.

В предыдущих главах мы говорили о стандартных функциях, например, в языке Pascal операция извлечения квадратного корня из величины x реализуется вызовом стандартной функции sqrt (x). Можно записать выражение, содержащее вызовы функций sqrt с разными аргументами, называемыми фактическими параметрами функции:

z= (sqrt (x) +sqrt (y)) / 2;

Подпрограммы, как и переменные должны быть описаны. Описание подпрограммы называется определением подпрограммы и состоит из заголовка подпрограммы и тела подпрограммы.

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

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

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

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

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

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

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

6.12.2. Подпрограммы в языке Pascal

Определение процедуры имеет вид:

{Заголовок процедуры:}

Procedure <имя процедуры > (<перечень формальных параметров>);

{Тело процедуры:}

<определение переменных процедуры>

Begin

Операторы процедуры

End;

Вызов процедуры имеет вид:

<имя процедуры> (<перечень фактических параметров>);

Примеры заголовков процедур:

Procedure F (X: Real; Var Z: Real); - процедура F от входного вещественного параметра X и выходного вещественного параметра Z;

Procedure Pfakt (k: Integer; Var f: Integer); - процедура Pfakt с входным целочисленным параметром k и выходным целочисленным параметром f.

Примеры вызова процедур F и Pfakt:

Var A, B: Real;

N, P: Integer;

….

A:=10.5; F (A, B);

N:=5; Pfakt (N, P);

Определение функции имеет вид:

{Заголовок функции}

Function <имя > (<перечень формальных параметров>): <тип результата>;

{Тело функции}

<определение переменных функции>

Begin

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]