Введение в программирование - Учебное пособие (Корочкин А. В.)

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.