Сделай Сам Свою Работу на 5

FUNCTION – служебное слово,





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

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

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

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

PROCEDURE ИМЯ_Процедуры (список ; формальных; пар-в);

Type . . . . .;

var . . . . .;

const . . . . ;

Begin

{ операторы процедуры }

. . . . . .

end;

Заголовок процедуры представляет собой:

PROCEDURE ИМЯ (список ; формальных; пар-в);

Где

PROCEDURE – служебное слово,

ИМЯ – имя процедуры,

СПИСОК ФОРМАЛЬНЫХ ПАРАМЕТРОВ - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов.

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

PROCEDURE <ИМЯ>;

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



Type . . . . .;

var . . . . .;

const . . . . ;

Begin

{ операторы процедуры }

. . . . . .

end;

Для того, чтобы процедура работала, она должна быть вызвана из программы.

Вид обращения к процедуре:

ИМЯ_Процедуры (список,фактических,параметров);

Входные и выходные параметры.

При обращении к процедуре с ней происходит обмен данными через элементы списка параметров. Данные, которые передаются в процедуру, называются входными. Данные, которые возвращаются из неё в вызывающую программу, называются выходными. Специальных описаний для входных и выходных параметров нет. Об этом даёт представление вид технологии передачи параметров.

Некоторые переданные в процедуру данные должны сохранять сделанные над ними изменения. Кроме того, из процедуры могут передаваться результаты обработки данных. Оба эти вида данных должны быть переданы в вызывающую программу и/или возвращены по специальной технологии – «по ссылке» (по адресу данных). При этом все действия с такими данными производятся над их оригиналами, так как используются их реальные адреса в ОП. Такие параметры в списке формальных параметров имеют специальный описатель VAR перед именем. (Не путать с разделом VAR из описательной части).



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

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

Формальные и фактические параметры.

Все действия в процедуре описываются над формальными параметрами.

Данные в процедуру для обработки передаются, а результаты возвращаются из процедуры через список параметров.

При обращении к процедуре обмен данными с ней происходит с использованием списка фактических параметров. Список фактических параметров – это перечень объектов данных, которые передаются в процедуру для обработки или возвращаются из неё как результаты обработки.

Требования к соответствию формальных и фактических параметров:

1) ведущим в этой паре является список формальных параметров, список фактических параметров подстраивается под него;



Количество фактических параметров в списке должно быть таким же, как и количество формальных параметров («количество»)

3) описания фактических параметров должны быть точно такими же, как и описания соответствующих формальных параметров («качество»);

Порядок расположения фактических параметров в списке должен точно соответствовать порядку параметров в списке формальных параметров («порядок следования»).

5) в списке фактических параметров имена фактических параметров записываются через запятую без каких-либо описаний. Когда процедура выполняется, происходит замещение формальных параметров фактическими, которые и обрабатываются.

Обращение к процедуре в вызывающей программе имеет операторы и заканчиваетcя на (;). После имени процедуры указывается список фактических параметров, написанных через запятую (см. требования к фактическим и формальным параметрам) без описателей типа и технологии передач. Когда в программе встречается имя процедуры, происходит приостановка работы основной программы и управление передаётся внутрь процедуры, где осуществляются вычисления согласно алгоритму. После завершения процедуры управление возвращается в вызывающую программу на оператор, стоящий за обращением к процедуре.

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

Пример.

Процедуры ввода и вывода одномерного массива могут иметь вид:

{ процедура ввода вектора }

PROCEDURE vvodmas (var n: integer; var a: mas);

{выходные параметры}

Var

I : integer;

Begin

Writeln ('введите количество ’,

’ элементов вектора < 25');

readln (n);

for i:= 1 to n do

Begin

write ('a[',i,']= ' ) ;

readln (a[i]);

end;

end;

{ процедура вывода вектора }

PROCEDURE vivmas (n: integer; a: mas);

Var

I : integer;

Begin

writeln ('М А С С И В');

for i:=1 to n do

write (a [i] : 6 );

readln;

end;

Тогда вызывающая программа может иметь такой вид (фрагмент)

 

PROGRAM MAIN;

Uses

Vect_fir; { подключение модуля пользователя}

{ если процедуры размещены в нём}

Type

mas = array [1..25] of integer;

Var

N : integer;

A : mas;

. . .

{ либо она размещена в модуле }

. . .

. { процедура вывода вектора, либо она размещена в модуле }

. . .

BEGIN

. . .

vvodmas (N,a);

. . .

vivmas (N,a);

. . .

END.

В вызывающей программе обращение к процедурам остаётся одинаковым и при внутренних процедурах, и при размещённых в модуле.

Можно рекомендовать давать соответствующим параметрам похожие, но не одинаковые имена, чтобы подчеркнуть, что это разные вещи.

Обращение к процедуре в вызывающей программе имеет операторы и заканчиваетcя на (;). После имени процедуры указывается список фактических параметров, написанных через запятую (см. требования к фактическим и формальным параметрам) без описателей типа и технологии передач. Когда в программе встречается имя процедуры, происходит приостановка работы основной программы и управление передаётся внутрь процедуры, где осуществляются вычисления согласно алгоритму. После завершения процедуры управление возвращается в вызывающую программу на оператор, стоящий за обращением к процедуре.

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

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

Из процедуры возможен принудительный выход с помощью оператора Exit.

Функция.

Функция – это подпрограмма, результат выполнения которой есть единственное скалярное значение, присваиваемое имени этой функции. Следовательно, функции являются частным случаем процедур и принципиально отличаются от них тем, что, во-первых, результат выполнения функции – одно значение, а процедуры – одно или несколько; во-вторых, результат выполнения функции передается в основную программу, как значение имени этой функции, а результаты выполнения процедуры – как значения ее параметров.

Описание функции аналогично описанию процедуры и состоит из заголовка и блока. Заголовок функции имеет вид:

FUNCTION ИМЯ (СПИСОК; ПАРАМЕТРОВ):ТИП;

Где

FUNCTION – служебное слово,

ИМЯ – имя функции,

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.