pascal Передача параметров по ссылке и по значению в процедуры и функции -- пример

В Паскале в процедуры и функции передавать значения можно двумя способами:

  1. По значению (без var перед именем переменной в заголовке процедуры/функции)
  2. По ссылке (с var перед именем переменной в заголовке процедуры/функции)

это зависит от перечисления принимаемых функций переменных с var или без

Пример передачи значений в процедуру

Рассмотрим пример программы с процедурой:

 
var
  a, b, c: integer; // объявляем глобальные переменные программы
 
procedure sum(x, y: integer; var z: integer); // начало объявления процедуры
begin
  z := x + y; // тело процедуры
end;
 
begin // начело тела программы
  write('Введите два числа: ');
  readln(a, b);
  sum(a, b, c); { -- вызов процедуры с параметрами (аргументами)
  процедура вызывается своим именем,
  которое вы написали после зарезервированного слова procedure в описании}
  writeln(c);
end.

-- переменная $z$ в процедуру sum передана по ссылке, это значит, что если её изменить в теле процедуре, то она изменится и в том месте, откуда её передали в процедуру (например, в теле основной программы).
Переменные же $x$ и $y$ переданы по значению -- это надо понимать так, что если их значения будут изменяться внутри процедуры (в данном случае), то "снаружи" эти изменения видны не будут.

Key Words for FKN + antitotal forum (CS VSU):