Составители:
Рубрика:
97
выполнения процедуры Р
– с фактическим результатом. Посколь-
ку в задаче требуется вычислить три раза операцию возведения в
степень (
r1, r2, r3), то в основной программе надо записать три
оператора вызова процедуры.
Program Primer_1;
Var
a, r1, r2, r3, Z: real;
Procedure ST(x: real; n: integer; var P: real);
var
i: integer;
begin
P := 1;
for i := 1 to n do P := P∗x;
end;
Begin {начало основной программы}
writeln(‘Введите число а’);
read(a);
ST(a, 5, r1);
ST(1/a, 5, r2);
ST(a, 7, r3);
Z := (r1 + r2)/(2∗r3);
writeln(‘Z=’, Z:6:2);
End.
В заголовке процедуры, заданной именем
ST, в списке фор-
мальных параметров указаны два
входных формальных парамет-
ра (
x, n) и один выходной (P).
В процессе выполнения программы после ввода заданного
числа
a три раза последовательно вызывается процедура ST. При
каждом вызове происходит соответствующая замена формальных
параметров (
x, n) на фактические, и вычисленный в процедуре ре-
зультат через формальный параметр
P присваивается фактиче-
ским переменным
r1, r2, r3 соответственно. Далее вычисляется
значение
Z и выводится на экран.
98
Согласование параметров
Формальные и фактические параметры должны быть согла-
сованы друг с другом по количеству, типу и порядку следования.
Это означает, что количество формальных параметров должно
быть равно количеству фактических параметров и каждый фор-
мальный параметр должен иметь тот же тип и занимать в списке
то же место, что и соответствующий ему фактический
параметр.
Механизм замены параметров
В списке формальных параметров выделяется два вида пара-
метров: параметры-значения и параметры-переменные. Механизм
замены для каждого вида параметров различен.
Параметры-значения играют роль входных параметров.
Фактическим параметром, соответствующим параметру-
значению, может быть константа, переменная или выражение.
Параметры-значения являются локальными переменными для
процедуры. Для них в памяти компьютера временно выделяются
ячейки, в которые передаются копии вычисленных значений фак-
тических параметров. При выполнении процедуры параметры-
значения могут изменяться, однако соответствующие им факти-
ческие параметры остаются без
изменения.
Параметры-переменные являются выходными парамет-
рами процедуры. Перед параметрами-переменными в списке ста-
вится служебное слово
var. В качестве соответствующих им фак-
тических параметров могут быть только переменные. При вызове
процедуры происходит замена имени параметра-переменной на
имя фактической переменной, т.е. в процедуру передается адрес
фактической переменной. Все действия в процедуре выполняются
непосредственно над фактическим параметром, а не его копией.
Поэтому любое изменение формального параметра-переменной
приводит к изменению соответствующего ему фактического па-
раметра.
Рассмотрим два примера, иллюстрирующих понятия пара-
метра-значения и параметра-переменной.
выполнения процедуры Р – с фактическим результатом. Посколь- Согласование параметров
ку в задаче требуется вычислить три раза операцию возведения в
Формальные и фактические параметры должны быть согла-
степень (r1, r2, r3), то в основной программе надо записать три
сованы друг с другом по количеству, типу и порядку следования.
оператора вызова процедуры.
Это означает, что количество формальных параметров должно
Program Primer_1; быть равно количеству фактических параметров и каждый фор-
Var мальный параметр должен иметь тот же тип и занимать в списке
a, r1, r2, r3, Z: real; то же место, что и соответствующий ему фактический параметр.
Procedure ST(x: real; n: integer; var P: real); Механизм замены параметров
var
В списке формальных параметров выделяется два вида пара-
i: integer;
метров: параметры-значения и параметры-переменные. Механизм
begin
замены для каждого вида параметров различен.
P := 1;
Параметры-значения играют роль входных параметров.
for i := 1 to n do P := P∗x; Фактическим параметром, соответствующим параметру-
end; значению, может быть константа, переменная или выражение.
Begin {начало основной программы} Параметры-значения являются локальными переменными для
writeln(‘Введите число а’); процедуры. Для них в памяти компьютера временно выделяются
read(a); ячейки, в которые передаются копии вычисленных значений фак-
ST(a, 5, r1); тических параметров. При выполнении процедуры параметры-
ST(1/a, 5, r2); значения могут изменяться, однако соответствующие им факти-
ST(a, 7, r3); ческие параметры остаются без изменения.
Z := (r1 + r2)/(2∗r3); Параметры-переменные являются выходными парамет-
writeln(‘Z=’, Z:6:2); рами процедуры. Перед параметрами-переменными в списке ста-
End. вится служебное слово var. В качестве соответствующих им фак-
В заголовке процедуры, заданной именем ST, в списке фор- тических параметров могут быть только переменные. При вызове
мальных параметров указаны два входных формальных парамет- процедуры происходит замена имени параметра-переменной на
ра (x, n) и один выходной (P). имя фактической переменной, т.е. в процедуру передается адрес
В процессе выполнения программы после ввода заданного фактической переменной. Все действия в процедуре выполняются
числа a три раза последовательно вызывается процедура ST. При непосредственно над фактическим параметром, а не его копией.
каждом вызове происходит соответствующая замена формальных Поэтому любое изменение формального параметра-переменной
параметров (x, n) на фактические, и вычисленный в процедуре ре- приводит к изменению соответствующего ему фактического па-
зультат через формальный параметр P присваивается фактиче- раметра.
ским переменным r1, r2, r3 соответственно. Далее вычисляется Рассмотрим два примера, иллюстрирующих понятия пара-
значение Z и выводится на экран. метра-значения и параметра-переменной.
97 98
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »
