Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика - лекции.doc
Скачиваний:
18
Добавлен:
07.11.2018
Размер:
512.51 Кб
Скачать

Структура процедуры и функции.

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

Формат процедур:

procedure имя процедуры (параметры);

const

объявление констант;

type

определения типов данных;

var

объявления переменных;

procedure и function;

begin

тело главной процедуры;

end;

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

function имя функции (параметры): тип данных;

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

- процедуры и функции имеют заголовок procedure или function, соответственно, а не program;

- процедуры и функции заканчиваются точкой с запятой (;), а не точкой (.).

Локальные и глобальные элементы.

Процедуры и функции могут иметь описания своих констант, типов данных, переменных и свои процедуры и функции. Но все эти элементы могут быть использованы только в тех процедурах и функциях, где они объявлены, и называются локальными.

Глобальные константы, типы, переменные – это те, которые объявлены в программ вне процедур и функций.

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

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

Пример программы.

Var

Buf : array [1..10] of Integer; {глобальная переменная}

I : Integer; {I - глобальная}

procedure ClrBuf; { Процедура очистки буфера }

var

I : Integer; {I - локальная }

begin

for I := 1 to 10 do Buf[I] := 0;

end;

begin

for I := 1 to 10 do Buf[I] := I;

ClrBuf; {Обращение к процедуре}

end.

Параметры.

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

procedure имя_процедуры (параметр1:тип_параметра1;

параметр2:тип_параметра2);

Например: Функция вычисления факториала числа.

var

Fact,Y : Integer;

function Factorial(X : Integer):Integer;

var

I,F : Integer;

begin

F := 1;

for I:= 1 to X do F := F * X;

Factorial := F; { значение функции возвращается через ее имя }

end;

begin

. . .

Fact := Factorial(10);

Y := 20;

Fact := Factorial(Y);

. . .

end.

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

Напр:

procedure Test(X,Y : Integer; C : Byte);

Параметры называются параметрами – значениями.

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

Например: Процедура нахождения минимального и максимального значений массива.

Var

Buf : array [1..10] of Integer; {глобальная переменная}

X,Y : Integer;

procedure MinMax(n: Integer; var Min,Max : Integer);

var