Вызов функций
После того, как функция была объявлена и определена, ее можно использовать, для этого ее нужно вызвать. Вызов функции выполняется записью ее имени, после чего нужно передать параметры функции в круглых скобках (), если они имеются.
Синтаксис:
<имя функции>(<список параметров>)
Если функция не имеет параметров, вызов функции осуществляется только записью ее имени.
Синтаксис:
<имя функции>
При вызове функции параметры задаются в таком же порядке, как они были записаны в списке параметров в заголовке определения функции. Тип результата и параметры задаваемых функций должны соответствовать параметрам в определении функции.
Пример:
ФУНКЦИЯ СТРОКА: ЗаданиеИмени(СТРОКА: имя, фамилия; ЦЕЛОЕ: номер) РЕЗУЛЬТАТ = СТР(номер) + " " + имя + фамилия СООБЩЕНИЕ(РЕЗУЛЬТАТ) КОНЕЦ_ФУНКЦИИ // функция без результата и параметров ФУНКЦИЯ ф1 //... КОНЕЦ_ФУНКЦИИ ВЫЧИСЛИТЬ ЗаданиеИмени("Петр", "Иванов", 1)//вызов функции ЗаданиеИмени ф1//вызов функции ф1 КОНЕЦ
Когда одна функция вызывается из кода другой функции, то имеет место вложенный вызов. Частный случай вложенного вызова, когда функция вызывает саму себя, называется рекурсией. Если не предусмотрено условия, по которому происходит завершение рекурсии, то функция будет пытаться вызывать себя бесконечно. Такая бесконечная рекурсия является ошибочной ситуацией. Для предотвращения аварийного завершения программы в результате переполнения стека выполнения, вложенный вызов функций (в т.ч. рекурсия) ограничен глубиной вызова 100. Превышение предела глубины вызова приводит к генерации ошибки времени выполнения. Т.к. величина предела достаточно велика, то наиболее вероятная причина такой ошибки – бесконечная рекурсия.