Составители:
ния возвращается в основной алгоритм как значение указателя функции и участ-
вует в дальнейшем вычислении значения выражения. Так, выполнение опера-
тора: у := интегфун (a, b, h) приведет к обращению к вспомогательному алго-
ритму вычисления интеграла функции, а выполнение оператора: s := ploshtr(a,
b, c) приведет к обращению к вспомогательному алгоритму вычисления пло-
щади треугольника, при этом результатом обращения будут значения функций,
соответствующие заданным фактическим аргументам.
Функции можно представить только как вспомогательные алгоритмы.
Объясняется это тем, что результат функции рассматривается как одно из про-
межуточных значений, необходимых для вычисления выражения. Чтобы вос-
пользоваться этим результатом, функцию необходимо не просто исполнить, а
вызвать из какого-то алгоритма.
Особенности оформления функций заключаются в описании параметров. В
список формальных параметров функций включаются только аргументы. Тип
результата, получаемого функцией, указывается в заголовке перед именем вспо-
могательного алгоритма аналогично тому, как если бы это был тип алгоритма в
целом. Тем самым вызов функции заменяет обращение к переменной соответст-
вующего типа. Однако следует четко понимать, что тип относится не к самой
функции, а к ее результату.
Примером описания вспомогательного алгоритма-функции является алго-
ритм вычисления площади треугольника по трем его сторонам:
вещ ploshtr(арг вещ a, b, c, рез вещ ploshtr)
нач вещ р
р := (a + b + c)/2
ploshtr := sqrt (p·(p – a)·(p – b)·(p – с))
кон
Имя результата с точки зрения вызывающего алгоритма совпадает с
именем функции. Поэтому может показаться естественным использование име-
ни функции в качестве имени результата и в самой функции. Однако при этом
становится невозможным рекурсивное обращение функции к самой себе, так как
это обращение будет восприниматься как использование текущего значения ре-
зультата. Поэтому в качестве имени результата при рекурсивных вызовах в АЯ
используется специальное ключевое слово знач.
40
Страницы
- « первая
- ‹ предыдущая
- …
- 38
- 39
- 40
- 41
- 42
- …
- следующая ›
- последняя »