Списък на формалните параметри

Най-общо списъкът с формални параметри е както следва:

където всеки елемент е описан по следния начин

къде е начинът за предаване на параметъра към подпрограмата (var, const или out); - официален идентификатор на параметър;

- тип параметър, всеки тип обект Pascal .

Всеки от официалните параметри може да бъде или параметър на стойност, или параметър на променлива, или константа.

Когато се извика подпрограмата, списъкът с формални параметри се заменя със списъка с действителните параметри. Действителният списък с параметри може да съдържа идентификатори, които не съвпадат с официалните идентификатори на списъка с параметри. Има само две съществени ограничения, наложени върху списъка с действителни параметри, а именно:

• редът на видовете от списъка на формалните и списъка с действителни параметри трябва да бъде еднакъв;

• броят на официалните и действителните параметри трябва да съвпада.

Например за следващото описание на подпрограмата

процедура TestProc (a, b: цяло число; s: низ); започнете

Следващото обаждане ще бъде правилно

списък

TestProc (1, 2, „здравей“);

и следното е погрешно

TestProc (1, „здравей“, 2);

Грешката във втория случай е, че вторият параметър в списъка на официалните параметри е от тип цяло число, а в списъка с действителните параметри е от тип низ. Трябва да се отбележи, че Object Pascal извършва автоматично преобразуване на типове за някои типове. Така например, целият тип може автоматично да се преобразува в необходимия реален тип реален, двоен, ...

Нека разгледаме по-отблизо някои видове формални параметри.

Параметри на стойността

Ако типът на официалния параметър не е посочен, тогава параметърът се счита за параметър на стойност. Характеристика на параметрите на стойността е, че не самият параметър се предава на подпрограмата, а нейното копие. Параметрите на стойността са нечувствителни към тяхната промяна вътре в подпрограмата, т.е. ако параметърът се промени в подпрограмата, той ще остане непроменен извън подпрограмата.

процедура TestProc (a, b, c: цяло число);

Можете да използвате константа или променлива като действителен параметър, когато извиквате подпрограма, например