Процедуры с параметрами
Параметры обеспечивают механизм замены, который позволяет выполнять процедуру с различными начальными данными. Между фактическими параметрами в операторе вызова процедуры и формальными параметрами в заголовке описания процедуры устанавливается взаимооднозначное соответствие в результате их перебора слева направо. Количество и тип формальных параметров равен количеству и типу фактических параметров. Соответствующие друг другу параметры не обязательно должны одинаково обозначаться.
При вызове процедуры работа главной программы приостанавливается и начинает выполняться вызванная процедура. Когда процедура выполнит свою работу, программа продолжится с оператора, следующего за оператором вызова процедуры.
Описания меток, констант, типов действительны только в пределах данной пользовательской процедуры.
Для принудительного выхода из процедуры используется оператор exit, который обеспечивает выход во внешний блок, т.е. в основную программу.
Пример программы вывода горизонтальной линии, в которой используется процедура без формальных параметров:
uses crt;
procedure hor;
var i: integer;
begin
for i:= 1 to 30 do
write('-');
end;
begin
clrscr;
hor;
end.
При вызове процедуры работа главной программы приостанавливается и начинает выполняться вызванная процедура. Когда процедура выполнит свою работу, программа продолжится с оператора, следующего за оператором вызова процедуры.
Приведем еще один пример программы вычисления значения степени числа, использующей для этой цели процедуру с формальными параметрами:
PROCEDURE Stepen (n: integer; x: real; var y: real);
var i: integer;
Begin
y:= 1;
for i:= 1 to n do
y:= y*x;
End;
{основная программа}
Var
j: integer;
a,b: real;
begin
readln(a,j);
if j = 1 then
b:= 1
else
if j > 0 then
STEPEN (j, a, b)
else
STEPEN (-j, 1/a, b);
writeln(a:9:2, ' в степени ', j:2 ,' равно ', b);
end.
В процедуре формальные параметры N и X определяют исходные данные (N – степень, X – число), а Y - результаты выполнения, т.е. значение искомой степени числа. При вызове процедуры stepenпроисходит замена формальных параметров (N, X, Y) фактическими(J, A, B)и выполняются операторы тела процедуры. При замене формальный параметр N принимает конкретное значение переменной J или –J, а X – переменной A или арифметического выражения 1/A. Затем в процедуре вычисляется значение Y и его значение передается в точку вызова в виде результата B. возврат в программу после выполнения процедуры stepenосуществляется к оператору, следующему за оператором вызова процедуры, в рассмотренном примере к оператору writeln.
Дата добавления: 2017-11-04; просмотров: 1913;