7.2 тело подпрограммТело подпрограммы определяет её выполнение. Тело подпрограммы начинается со спецификации, после чего размещаются локальные описания и операторная (основная) часть подпрограммы. Локальные описания могут включать описания типов, переменных, исключений, процедур, пакетов и задач, а так же спецификаторы представления. Основная часть подпрограммы содержит последовательности операторов и, возможно, обработчики1 исключений. П Пример Процедуры и функции для сложения векторов. Процедура SUM предназначена для сложения векторов фиксированной размерности, функция "+" - для сложения векторов любой размерности: procedure Sum (А, В : in Vector; С : out Vector) is begin for i in 1 .. N loop C( i): = A( I) + B( i); end loop; end Sum; 2 ______ function "+"(Vx, Vy : Vector) return Vector is 64 Ада 95. Введение в программирование 65 Глава 7. Подпрограммы
Vres: Vector; begin if Vx'first /= Vy'first or Vx'last /= Vy'last then raise Error; - - возбуждение исключения end if; for i in Vx'Range loop Vres (i): = Vx( i) + Vy( i); end loop; return Vres ; - - возвращаемое значение функции end " + "; Для повышения эффективности работы подпрограмм в языке предусмотрена прагма Inline: Pragma INLINE( Имя подпрограммы, (Имя подпрограммы } ); Прагма используется для того, чтобы в тексте при каждом вызове процедуры , указанной в прагме Inline, выполнялась подстановка тела соответствующей подпрограммы. D Например: in Integer; Z: out String); procedure Happer( X: pragma Inline ( Happer); Здесь компилятор должен все вызовы подпрограммы Happer заменить телами этой подпрограммы. Это повысит производительность программы, в которой используется данная подпрограмма, поскольку сокращается время выполнения процедуры Happer. |
| Оглавление| |