ді параметр Line в заголовку і тілі підпрограми subprog - це формальний параметр, а рядок «Good bye» , Використана в першому виклику цієї підпрограми - фактичний параметр. При виклику підпрограми фактичні параметри, зазначені в команді виклику, стають значеннями відповідних формальних параметрів, чим і забезпечується передача даних у підпрограму.
Види параметрів в Паскалі
Розрізняють чотири види параметрів: - параметри-значення;- Параметри-змінні;- Параметри-процедури;- Параметри-функції.
Параметри-значення - використовуються для передачі вихідних даних в підпрограму. Формальні параметри при цьому записуються через кому із зазначенням їх типів. Вони отримують значення фактичних параметрів, але не можуть передавати свої значення фактичним параметрам.
Параметри-змінні - грають роль як вхідних, так і вихідних (повертаються) параметрів процедури. У списку формальних параметрів вони перераховуються після слова Var із зазначенням їх типів.
Параметри-процедури - вказуються після слова Procedure.
Параметри-функції -. вказуються після слова Function.
Спосіб передачі параметрів в підпрограму
Існує кілька способів передачі параметрів в підпрограму.
· Передача параметрів за значенням. Формального параметру присвоюється значення фактичного параметра. У цьому випадку формальний параметр буде містити копію значення, наявного у фактичному, і ніяке вплив, вироблене всередині підпрограми на формальні параметри, не відбивається на параметрах фактичних. Так, якщо в якості фактичного параметра буде використана змінна, і всередині підпрограми значення відповідного формального параметра буде змінено, то фактичний параметр залишиться без змін.
int func1 (int x)
{x=x +1; return x;}
· Передача параметрів за посиланням. У формальний параметр може бути поміщений сам фактичний параметр (зазвичай це реалізується шляхом приміщення в формальний параметр посилання на фактичний). При цьому будь-яка зміна формального параметра в підпрограмі відіб'ється на фактичному параметрі - обидва параметри під час виклику підпрограми суть одне і те ж. Параметри, що передаються по посиланню, дають можливість не тільки передавати параметри всередину підпрограми, але і повертати обчислені значення в точку виклику. Для цього параметру всередині підпрограми просто присвоюється потрібне значення, і після повернення з підпрограми змінна, використана в якості фактичного параметра, отримує це значення.
void func2 (int & x)
{x=x +1;}
· Передача параметрів по імені. У формальний параметр може бути поміщене довільний вираз. При цьому обчислення цього виразу станеться всередині підпрограми в той момент, коли буде потрібно його значення. Якщо це значення фігурує кілька разів, то і обчислюватися воно буде теж кілька разів. Параметри, що передаються по імені, дають можливість писати досить універсальні підпрограми. Такий спосіб передачі параметрів використовується, наприклад в мовах Алгол або Алгол 68.
· Передача параметрів через стек. Це фактично різновид передачі параметра за значенням «з ручним приводом», в даному випадку відсутнє п...