Если в качестве формального параметра указана переменная, то такой параметр и есть параметр-значение. Примерами таких параметров служат параметры А, В и С в процедуре SQ:
В этом случае фактическим параметром/соответствующим А либо В либо С, может быть любое выражение соответственного типа, в частности, константа.
Например, обратиться к SQ можно так:
Для параметров-значений машина при вызове процедур производит следующие действия: выделяет место в памяти для каждого формального параметра, вычисляет значение фактического параметра и засылает его в ячейку, соответствующую формальному параметру,
Если фактический параметр есть имя переменной, например, R, то значение этой переменной пересылается в соответствующий формальный параметр, например, А. На этом всякая связь между А и R обрывается,
Если даже фактический и формальный параметры одинаково обозначены, в памяти ЭВМ эти параметры занимают разные ячейки. Это полезно знать, чтобы не допустить распространенной среди начинающих программистов ошибки - пытаться передать информацию из процедуры в вызывающую программу через параметр-значение.
Пример.
В T2 происходит засылка числа 2 в ячейку, отведенную для переменной I, затем идет обращение к процедуре Р с фактическим параметром 1=2. При этом значение 2 пересылается в другую ячейку, отведенную для формального параметра I. В этой ячейке после выполнения оператора 1: = 1*2 появляется число 4. Но после возврата из процедуры на оператор WRITELN программа Т2 "знает" только одну переменную I, которая по-прежнему содержит число 2. Поэтому программа напечатает 1=2.
Если формальный параметр есть параметр-значение, то соответствующим фактическим параметром должно быть выражение того же типа, что и формальный параметр.