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 Все материалы защищены законодательством РФ.
|