Составители:
Рубрика:
99
Пример 1 Пример 2
Program P1; Program P2;
Var Var
x: integer; x: integer;
Procedure Z (y: integer); Procedure Z (var y: integer);
begin begin
y := 1; y := 1;
end; end;
Begin Begin
x := 0; x := 0;
Z(x); Z(x);
writeln(‘x=’, x); writeln (‘x=’, x);
End.
End.
В примере 1 процедура
Z содержит формальный параметр y,
который является
параметром-значением, поэтому его измене-
ние в процедуре (
y:=1;) не влияет на значение фактического па-
раметра
x. После выполнения программы на экран будет выведе-
но:
x = 0.
В примере 2 формальный параметр
y является параметром-
переменной
. Это означает, что его значение после выполнения
процедуры
Z присваивается фактическому параметру x. На экран
будет выведено:
x = 1.
8.3. Функции
Функция отличается от процедуры тем, что результат ее ра-
боты возвращается в основную программу в виде значения функ-
ции. Поэтому для функции необходимо указать тип, а в теле функ-
ции должен присутствовать оператор присваивания, в левой части
которого записывается имя функции, а в правой – результат.
Общий вид описания функции
Описание функции аналогично процедуре, содержит заголо-
вок со списком формальных параметров и тело функции. Связь
формальных параметров с фактическими параметрами осуществ-
ляется по тем же правилам, что и в процедуре. Для функции так-
же справедливы понятия глобальных и локальных переменных.
100
Function <имя>(<список формальных параметров>):<тип>;
var {Раздел описания переменных функции}
………….
begin {Раздел операторов функции}
………….
<имя>:=<результат>;
end;
Обращение к функции
В отличие от процедуры, обращение к функции не является
специальным оператором, а включается в состав выражения. Ре-
зультат выполнения функции возвращается в основную програм-
му через имя функции. Обращение к функции записывается ана-
логично записи стандартной функции (например, sin(x), exp(x)
и т.п.) в виде операнда:
<имя функции>(<список фактических параметров>);
При вычислении выражения операнд обращения к функции
заменяется значением функции.
Пример программы с функцией
Решить предыдущую задачу (см. с. 94) с использованием
функции.
Program Primer_2;
Var
a, Z: real;
Function (x: real; n: integer): real;
var
i: integer;
P: real;
begin
P := 1;
for i := 1 to n do P := P∗x;
ST := P;
end;
Begin {начало основной программы}
writeln(‘Введите число а’);
read(a);
Пример 1 Пример 2 Function <имя>(<список формальных параметров>):<тип>;
var {Раздел описания переменных функции}
Program P1; Program P2;
………….
Var Var
begin {Раздел операторов функции}
x: integer; x: integer;
………….
Procedure Z (y: integer); Procedure Z (var y: integer);
<имя>:=<результат>;
begin begin
end;
y := 1; y := 1;
end; end; Обращение к функции
Begin Begin В отличие от процедуры, обращение к функции не является
x := 0; x := 0; специальным оператором, а включается в состав выражения. Ре-
Z(x); Z(x); зультат выполнения функции возвращается в основную програм-
writeln(‘x=’, x); writeln (‘x=’, x); му через имя функции. Обращение к функции записывается ана-
End. End. логично записи стандартной функции (например, sin(x), exp(x)
В примере 1 процедура Z содержит формальный параметр y, и т.п.) в виде операнда:
который является параметром-значением, поэтому его измене- <имя функции>(<список фактических параметров>);
ние в процедуре (y:=1;) не влияет на значение фактического па- При вычислении выражения операнд обращения к функции
раметра x. После выполнения программы на экран будет выведе- заменяется значением функции.
но: x = 0. Пример программы с функцией
В примере 2 формальный параметр y является параметром-
переменной. Это означает, что его значение после выполнения Решить предыдущую задачу (см. с. 94) с использованием
процедуры Z присваивается фактическому параметру x. На экран функции.
будет выведено: x = 1. Program Primer_2;
8.3. Функции Var
a, Z: real;
Функция отличается от процедуры тем, что результат ее ра- Function (x: real; n: integer): real;
боты возвращается в основную программу в виде значения функ- var
ции. Поэтому для функции необходимо указать тип, а в теле функ- i: integer;
ции должен присутствовать оператор присваивания, в левой части P: real;
которого записывается имя функции, а в правой – результат. begin
Общий вид описания функции P := 1;
Описание функции аналогично процедуре, содержит заголо- for i := 1 to n do P := P∗x;
вок со списком формальных параметров и тело функции. Связь ST := P;
формальных параметров с фактическими параметрами осуществ- end;
ляется по тем же правилам, что и в процедуре. Для функции так- Begin {начало основной программы}
же справедливы понятия глобальных и локальных переменных. writeln(‘Введите число а’);
read(a);
99 100
Страницы
- « первая
- ‹ предыдущая
- …
- 47
- 48
- 49
- 50
- 51
- …
- следующая ›
- последняя »
