Параметры-значения используются для определения исходных данных процедуры и аргументов функции, в списке формальных параметров перечисляются через запятую с обязательным указанием их типа.
Параметры-переменные используются для определения результатов выполнения процедуры и в списке формальных параметров помещаются после служебного слова Var.
Например, в заголовке процедуры ProcedureРгс(х, у: real; Varz : real; Varn : integer); переменные x, у являются параметрами-значениями, az, n - параметрами- переменными.
В заголовке функции параметры-переменные не используются, так как вычисляемое значение функции возвращается не через параметры.
При описании формальных параметров следует соблюдать следующие правила:
а)Если несколько формальных параметров имеют один и тот же тип, имя типа можно указать один раз на всю группу, перечислив параметры через запятую.
б)Слово Var необходимо указывать для каждой группы параметров-переменных.
в)Тип формального параметра может быть стандартным или ранее
объявленным типом, в заголовке подпрограммы нельзя вводить новый тип, например нельзя писать Function Max(z : array [1..100] of real): real; Тип формального параметра может быть указан в заголовке подпрограммы с помощью имени типа, стандартного или объявленного ранее:
В качестве фактического параметра-значения может быть использовано выражение соответствующего типа, в частном случае - константа или переменная. При вызове подпрограммы вычисляется значение фактического параметра, полученный результат копируется во временную память и передается подпрограмме. В процессе выполнения подпрограммы параметр-значение может изменяться, но эти изменения никак не воспринимаются вызывающей программой, так как изменяется копия фактического параметра. Поэтому параметры-значения нельзя использовать для возврата результатов выполнения процедуры!
Фактически параметр-переменная может быть только переменной или типизированной константой соответствующего типа. При обращении к процедуре осуществляется передача адреса фактического параметра. Следовательно, подпрограмма имеет доступ непосредственно к фактическому параметру и может его изменять. Поэтому параметры-переменные используют при обозначении результатов работы процедуры, а также в случаях, когда параметр одновременно является входным и выходным.