вираження у вигляді змінної або константи, все одно підпрограмі буде передана лише копія змінної (Константи). Таким чином, призначення параметра-значення - передача даних з програми в підпрограму. Якщо же параметр визначений як параметр-змінна, то при виклику підпрограми передається сама змінна, а не її копія. Будь-які можливі зміни в підпрограмі параметра-значення ніяк не сприймаються викликає програмою, тому що в цьому випадку змінюється копія фактичного параметра, в той час як зміна параметра-змінної приводить до зміни самого фактичного параметра в викликає програмі. Параметр-константа схожий з параметром-змінною: в підпрограму передається сама константа, але зміна її неможливо. Призначення такого параметра збігається з призначенням параметра-значення. Формальні параметри-константи вказуються в заголовку програми після службового слова const. Його дія поширюється до найближчої точки з комою. p> Пояснимо викладене. p> .....
var
a, b: integer;
......
procedure squar (a: integer; var b: integer);
begin
a: = sqr (a);
b: = sqr (b);
writeln ('в квадраті вони виглядають так: ', a,', ', b);
end;
........
begin
a: = 4; b: = 6;
writeln ('уважно подивіться на ці числа: ', a,', ', b);
squar (a, b);
writeln ('а так а не в квадраті: ', a,', ', b);
end.
Результати виглядають так: уважно подивіться на ці числа: 4, 6
в квадраті вони виглядають так: 16, 36
а так а не в квадраті: 4, 36
Цей приклад може служити ще й ілюстрацією механізму В«закриванняВ» глобальної змінної а однойменної локальної: хоча мінлива оголошена як глобальна (вона описана в викликає програмі перед описом процедури), у тілі процедури її В«закрилаВ» локальна змінна а, оголошена як параметр-значення.
Отже, параметри-змінні використовуються як засіб зв'язку алгоритму, реалізованого в підпрограмі, з В«зовнішнім світомВ»: за допомогою цих параметрів підпрограма може передавати результати своєї роботи викликає програмі. Зрозуміло, в розпорядженні програміста завжди є й інший спосіб передачі результатів - через глобальні змінні. Однак зловживання глобальними зв'язками робить програму, як правило, заплутаною, важкою в розумінні і складною в налагодженні. Відповідно до вимог хорошого стилю програмування рекомендується там, де це можливо, використовувати передачу результатів через фактичні параметри-змінні.
З іншого боку, опис всіх формальних параметрів як параметрів-змінних небажано з двох причин. По-перше, це виключає можливість виклику підпрограми з фактичними параметрами у вигляді виразів, що робить програму менш компактною. По-друге, і головних, в підпрограмі можливе випадкове використання формального параметра, наприклад, для тимчасового зберігання проміжного результату, тобто завжди існує небезпека ненавмисно В«ЗіпсуватиВ» фак...