Система программирования Турбо Паскаль. Воробьева А.П - 49 стр.

UptoLike

Составители: 

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 := Px;
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