Для вызова процедуры из основной программы или другой процедуры (функции) необходимо записать оператор, составленный из имени процедуры (функции) и списка фактических параметров, которые должны совпадать по количеству и типу с формальными параметрами.
При вызове процедуры ей передаются указанные параметры, которые становятся локальными переменными процедуры, к ним добавляются локальные переменные самой процедуры, а затем выполняются операторы, записанные в теле процедуры. Как только тело процедуры выполнено, управление передаётся тому оператору программы, который следует за вызовом процедуры.
Например, для попискивания вредного персонажа игры мы можем в нужном месте обратиться за помощью к нашей процедуре Sound(name: String); по извлечению звуков:
Sound(’pisk’);
Естественно, вместо формального параметра name, мы должны указать имя реально существующего звукового файла на диске, который и содержит нужное нам попискивание.
Вызов функции, если возвращаемое ею значение не используется, ничем не отличается от вызова процедуры:
fact (10);
В этом случае функция вычислит факториал числа 10, но оно будет проигнорировано программой. Обычно поступают более культурно, и работа функции не пропадает даром. Для этого возвращаемое значение присваивают переменной того же типа (или совместимого), что и функция:
Var n: integer;
n:= fact(10);
После вызова функции переменная nпримет значение 10! (посчитайте сами, сколько это будет!).
Вызов функции называют также обращением к функции.
Фактические параметры перечисляются через запятую.