Параметры и аргументы

Параметры — это элементы подпрограммы, которые используются при описании блока подпрограммы.

Аргументы — это элементы, которые указываются при вызове подпрограмм. Они замещаются соответствующими параметрами подпрограммы.

В качестве параметров могут выступать:

Параметрами могут быть элементы абсолютно любого типа.

Все параметры разделяются на группы, в зависимости от того, чем они являются:

Параметры-значения — это параметры, перед которыми в заголовке подпрограммы не стоит слово var или const. За параметрами-значениями через двоеточие ставится их тип. Например:

function Max(A: array of Real; N: Integer): Real;

Здесь массив А и переменная N являются параметрами-значениями. Параметры-значения рассматриваются компилятором как локальные переменные, которые присутствуют только внутри подпрограммы. Все изменения этих параметров происходят только внутри подпрограммы и никак не влияют на значения соответствующих им аргументов.

Параметры-константы — это параметры, перед которыми в заголовке подпрограммы стоит слово const. За параметрами-константами через двоеточие ставится их тип. Например:

procedure MyProc1(const X: Integer);

Здесь единственный параметр х является параметром-константой. Значение параметра-константы в теле подпрограммы изменить нельзя. Параметры-константы применяются для того, чтобы запретить нежелательные изменения параметров в подпрограмме. Кроме того, использование параметров-констант позволяет компилятору создать более эффективный код.

Параметры-переменные — это параметры, перед которыми в заголовке подпрограммы стоит слово var. За параметрами-переменными через двоеточие ставится их тип. Например:

procedure MyProc2(var a,b:char; c,d:string);

В этом примере параметры а и b являются параметрами-переменными.

Параметры-переменные используются, когда необходимо передать значение из подпрограммы в основную программу. При этом все изменения параметра внутри подпрограммы приводят к аналогичным изменениям соответствующего аргумента.

Указание типов параметров обязательно лишь для параметров-значений. Для других видов параметров тип можно не указывать. В таком случае параметры считаются нетипизированными. Например:

function MyFunc(var a,b; const c,d): Integer;

В данном примере параметры а, b, с и d являются нетипизированными. При вызове такой подпрограммы программист может использовать в качестве аргументов элементы любого типа.

Hosted by uCoz