Паскаль в примерах. Иринчеев А.А - 62 стр.

UptoLike

62
function g(var a,b:integer): integer;
function h(a:integer): char;
Вторая особенность: составной оператор, который располагается в описании функции
после заголовка и, возможно, после описания локальных меток и переменных, должен обяза-
тельно содержать внутри себя оператор присваивания, в котором слева от := помещено имя
функции, например:
f:=3,14
g:=a+2*b
if a mod 2=0 then h:=’*’ else h:=’!’
Таких операторов присваивания может быть несколько, но при каждом конкретном об-
ращении к функции «сработать» должен
только один из них. Это присваивание и определит
значение функции.
Относительно параметров функции имеется полная аналогия с параметрами процедур.
Описание функции, как и описания процедур, располагаются в программе после совокупно-
сти описания процедур.
Расмотрим пример программы с трассировкой
1 Program pro6;
2 Var a,b,c:integer;
3 function
pr(x, y: integer) : integer;
4 Begin
5 x:=x+2;
6 y:=y-3;
7
pr :=(x+y) DIV 2;
8 end;
9 BEGIN
10 readln(a,b);
11 c:=
pr (a,b);
12 writeln(a,’ ‘,b,’ ‘,c);
13 END.
Таблица трассировки
Ход выполнения a b c
9 Вход в pro6 ? ? ?
10 2 3
11 Вызов pr x y pr
4 Вход pr 2 3
5 4
6 0
7 2
8 Выход из pr
11 Возврат в pro6 2
12 Вывод a,b,c (2 3 2)
13 Выход из pro6
 function g(var a,b:integer): integer;
 function h(a:integer): char;
    Вторая особенность: составной оператор, который располагается в описании функции
после заголовка и, возможно, после описания локальных меток и переменных, должен обяза-
тельно содержать внутри себя оператор присваивания, в котором слева от := помещено имя
функции, например:
        f:=3,14
        g:=a+2*b
        if a mod 2=0 then h:=’*’ else h:=’!’
      Таких операторов присваивания может быть несколько, но при каждом конкретном об-
ращении к функции «сработать» должен только один из них. Это присваивание и определит
значение функции.
    Относительно параметров функции имеется полная аналогия с параметрами процедур.
Описание функции, как и описания процедур, располагаются в программе после совокупно-
сти описания процедур.
    Расмотрим пример программы с трассировкой

  1 Program pro6;
  2 Var a,b,c:integer;
  3 function pr(x, y: integer) : integer;
  4 Begin
  5     x:=x+2;
  6     y:=y-3;
  7    pr :=(x+y) DIV 2;
  8 end;
  9 BEGIN
  10 readln(a,b);
  11 c:= pr (a,b);
  12 writeln(a,’ ‘,b,’ ‘,c);
  13 END.


      Таблица трассировки

  №       Ход выполнения        a     b     c
  9     Вход в pro6             ?     ?     ?
  10                            2     3
  11 Вызов pr                                   x   y   pr
  4     Вход pr                                 2   3
  5                                             4
  6                                                 0
  7                                                     2
  8     Выход из pr
  11 Возврат в pro6                         2
  12 Вывод a,b,c (2 3 2)
  13 Выход из pro6



                                                                                     62