Если формальные параметры имеют одинаковый тип и способ передачи, то заголовок можно сократить так:

procedure Swap (var x, y: integer);

Принцип объединения в заголовке тот же, что при объявлении однотипных переменных в секции VAR.

Теперь напишем процедуру Swap и программу «P_22_1» для её проверки.

{ P_22_1 – процедура обмена и программа её проверки }

{ процедура обмена }

procedure SWAP(var x,y : integer);

var t: integer;

begin

      t:= x;       x:= y;       y:= t;

end;

var A, B : integer;

begin       {--- главная программа ---}

      A:= 10; B:= 20;

      Writeln(’A= ’, A, ’ B= ’, B);

      SWAP(A, B);

      Writeln(’A= ’, A, ’ B= ’, B);

      Readln;

end.

Работает ли эта программа? Обязательно проверьте!

Замена символов в строке

Вернемся к программе P_20_1, где возможности процедуры Scan небогаты: допускается менять только символы «A» на символы «B». А если надо менять символы по своему усмотрению? Пожалуйста! Добавим в заголовок процедуры пару формальных параметров, например, так:

procedure Scan(var arg: string; Ch1, Ch2: char);

var k: integer;

begin

      for k:=1 to Length(arg) do

      if arg[k]= Ch1 then arg[k]:= Ch2;

end;

Здесь параметры Ch1 и Ch2 указывают, что и на что надо поменять. Поскольку параметры однотипны, они разделяются запятой. Порядок объявления формальных параметров в заголовке не важен. Но важно, чтобы при вызове процедуры порядок фактических параметров был таким же. Вот пример правильного вызова (символ «1» меняется на символ «2»).

Scan(S, ’1’, ’2’);

А вот ошибочные:

Scan(S, ’1’);       { указаны не все параметры }

Scan(’1’, S, ’2’);       { нарушен порядок следования параметров }

Scan(S, ’1’, ’2’, ’3’);       { указан лишний параметр }

Scan(S, 1, 2);       { неверный тип параметров }

Вы читаете Песни о Паскале
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату