Параметри-змінні Для того, щоб результат обчислень у тілі процедури зручно було використати в програмі, треба не фіксувати змінну, якій присвоюється одержане значення, а зробити її також параметром. Позначимо цю змінну, наприклад, res і введемо її в список формальних параметрів процедури. Однак параметр res суттєво відрізняється від формальних параметрів r1 і r2. Він у тілі процедури повинен бути не значенням, а деякою змінною, яка існує поза тілом процедури. І щоб процедура могла присвоїти значення такій змінній, треба забезпечити безпосередній доступ до цієї змінної з процедури, а для цього потрібно, щоб відповідний параметр був параметром-змінною. Параметр-змінну від параметра-значення відрізняє службове слово var, записане перед параметром-змінною у списку формальних параметрів. Після формального параметра-змін-ної, як звичайно, зазначають його тип. На відміну від формального параметра-значення, для якого фактичним параметром може бути будь-який вираз відповідного типу, для формального параметра-змінної фактичним параметром може бути тільки змінна відповідного типу. Тепер програму можна записати так: program maxe(input, output); var x, у, u, v: real; procedure max2d(r1, r2: real; var res: real); begin if r1>r2 then res:=r1 else s:=r2 end; begin read(x, y); max2d(x+y, x*y, u); max2d(0.5, u, v); writeln('u=', u,' v=', v) end. У цьому випадку виконання оператора-процедури max2d(x+y, x*y,u) рівносильне виконанню еквівалентного блоку: var r1, r2: real; begin r1:=x+y; r2:=x*y; if r1>r2 then u:=r1 else u:=r2 end Отже, оскільки формальний параметр оголошений параметром-змшною, то процедура одержує безпосередній доступ до змінної, заданої як відповідний фактичний параметр. Завдяки цьому процедура може безпосередньо змінювати значення цієї змінної і таким чином передавати в програму одержаний у її тілі результат. Кажучи точніше, у випадку звертання до процедури, що як формальний параметр містить параметр-змінну, їй передається вказівка на змінну, задану як фактичний параметр, і процедура використовує цю вказівку для доступу до цієї змінної.