Вторник, Октябрь 20Добро пожаловать!

Передача параметров в языке Pascal

Как проходит передача параметров в языке Паскаль?

Передача параметров в языке Паскаль может проходить в два способа: либо по ссылке, либо по значению. Параметры, передаваемые по ссылке, называются параметрами-переменными, а передаваемые по значению — соответственно параметрами-значениями (обычные локальные переменные). Одно из главных отличий параметров-переменных от параметров значений состоит в том, что в заголовке функции или процедуры перед параметрами-переменными используется ключевое слово var:

Параметры-переменные в языке Pascal

procedure empty(n:integer);
var
m:integer;
begin
 . . .
end; 

Параметры-значения в языке Pascal

procedure pris(var x1,x2: real);
var
r: real;
begin
r:= x1;
x1:= x2;
x2:= r;
end;

В случае передачи по ссылке все изменения, которые происходят в теле функции (процедуры) с формальными параметрами, влекут за собой мгновенные аналогичные изменения соответствующих формальных параметров. При этом изменения осуществляются с переменными вызывающего блока, вследствие этого по ссылке происходит передача выходных параметров. В случае вызова соответствующие фактические параметры могут являться лишь переменными параметрами.

При передаче по значению происходит копирование значений фактических параметров в соответствующие им формальные параметры. В процессе выполнения функции (процедуры) в процессе изменения этих значений фактические параметры (т.е. исходные данные) не могут измениться. Поэтому подобным образом могут передаваться только входные данные (данные из вызывающего блока). В этом случае и переменные, и константы, и выражения можно использовать как фактические параметры.

С практической точки зрения выбор типа передачи параметров сводится к расстановке в заголовке функции (процедуры) ключевого слова var со всеми параметрами, с помощью которых и происходит обеспечение результата выполнения данной подпрограммы. Но так как функция возвращает лишь один результат, то не следует пользоваться параметрами-переменными в ее заголовке.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *