Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Обращение к процедурам и функциям
Синтаксис Вызов процедур (в исполнительной части в качестве оператора): < Имя процедуры> [(< Список фактических параметров>)]
Вызов функций (используются в выражениях): < Имя функции> [(< Список фактических параметров>)]
В списке фактических параметров перечисляются через запятую значения передаваемых в процедуру или функцию параметров. Количество и тип фактических параметров должны соответствовать описанным в заголовке формальным параметрам. При вызове процедуры или функции формальные параметры принимают значения переданных туда фактических параметров. Пример PrintNumber(10); Writeln(Mul(4, 7)); PrintNumber(Mul(2, 3)+8);
Лекция 5 Процедуры и функции. Процедурные типы. Тип указатель 5.1. Модификаторы VAR и CONST в описании формальных параметров Если не указывать никаких модификаторов, то при передаче фактических параметров в процедуру или функцию создается временная копия значения фактического параметра, которая используется в процедуре или функции и удаляется после выхода. При использовании модификатора VAR в качестве формального параметра передается переменная (точнее ссылка на переменную). Значение переменной, переданной по ссылке, можно изменить внутри процедуры или функции. При этом изменится и значение переменной, указанной в качестве параметра. Пример PROCEDURE VectorSum(x1, y1, x2, y2: Real; VAR x, y: Real); BEGIN x: =x1+x2; y: =y1+y2; END; VAR x, y: Real; ∙ ∙ ∙ VectorSum(3, 7, 5, 10, x, y);
Результат выполнения x=8, y=17
Таким образом, можно использовать этот способ передачи параметров, например для возврата процедурой или функцией, если это необходимо, сразу нескольких значений. Заметьте, что в этом случае значения может возвращать и процедура. Существуют случаи, когда передавать переменные по ссылке, а не по значению обязательно. Часто этот модификатор применяется для переменных составных типов (например, строк и массивов). Модификатор CONST применяется в основном для переменных составных типов в случае, когда значение параметра внутри процедуры или функции изменять не требуется. В этом случае не создается временная копия значений параметров, а, как и при использовании модификатора VAR, переменные передаются по ссылке, что сокращает время на создание копии больших составных переменных. Передавать значения по ссылке допускается, так как можно быть уверенным, что, как и при обычной передаче параметров, значение переменных не изменится. Если попытаться изменить значение параметра, описанного с модификатором CONST, будет выдано сообщение об ошибке.
|