11.1 Механизм параметров.
В заголовке процедуры или функции может быть задан список формальных параметров в круглых скобках. Каждый параметр считается локальным.
Идентификаторы формальных параметров можно считать условными обозначениями в теле программы тех реальных параметров, которые будут переданы в подпрограмму при ее вызове.
Примеры заголовков процедур и функций:
Function max (A: Vector; n:byte):real;
Procedure sum (a, b:matrix; var c: matrix);
Procedure move (var s, d; n:word);
Рисунок 11.1 - Список формальных параметров и описание параметров
Но есть и ограничения, типы формальных параметров должны обозначаться идентификаторами.
Procedure max (var A: array [1..10] of byte); - недопустимое объявление.
Если необходимо передать в подпрограмму параметр с типом, определенным программистом, то используется идентификатор.
Type
MyArray = array [1..10] of byte;
….
Procedure Max (var A:MyArray);
….
Из приведенных синтаксических диаграмм следует, что в списке формальных параметров программ допустимы по крайней мере три способа их задания.
1. Параметры, перед которыми отсутствует служебное слово var и за которыми следует идентификатор типа.
2. Параметры, перед которыми указано var и за которыми следует тип.
3. Параметры, за которыми следует слово var и которые не имеют типа.
Эти три способа задания формальных параметров отражают три различных способа передачи параметров: первый способ называется передачей параметров по значению, второй способ - передачей параметров по ссылке, третий способ - передачей не типизированных параметров по ссылке.