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

7.3 вызов подпрограммы и согласование параметров.

Вызов подпрограммы вызывает выполнение тела соответствующей подпрограммы. Вызов подпрограммы - это либо оператор вызова процедуры, либо вызов функции. При вызове подпрограммы проис­ходит связывание фактических и формальных параметров. В Аде такое связывание осуществляется двумя, способами:

- неявно, когда соответствие устанавливается порядком написания фактических параметров ( позиционное связывание);

 

- - позиционное

- - именованное

- явно, когда фактические параметры приводятся вместе с именами формальных параметров в произвольном порядке ( именованное связы­вание ):

SUM (VA, VB,   RES);

SUM (В => VB, C=> RES,   A => VA);

D   Примеры  вызова подпрограмм из 7.1:

Model_Train;       Cat( X);          Zt_lsk( 62.8, Rez); Sound( G, E );                   Sound( Y = > E, X = > G ); Crown (Stack_Size);

Print_FF( Coutn ); - - второй параметр используется по умолчанию

Print_FF( ATF, 12 );            Res: = Lotto ;

MA : = MB - MC ;               Z : = D( Vec_A, alfa ) + Vec_B;

Независимо от способа связывания тип каждого фактического па­раметра должен совпадать с типом соответствующего формального параметра.

Согласование параметров при вызове подпрограммы - это согласо­вание формальных и фактических параметров. Согласование парамет­ров включает:

•   согласование типов ;

•   согласование вида;

•   согласование подтипа;

•   полное согласование.

Некоторые правила согласования параметров :

•   тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра;

•   фактический параметр, сопоставляемый с формальным, имеющим вид in out или out должен быть именем переменной:

•   скалярный формальный параметр должен удовлетворять всем уточнениям диапазонов типов, причем для вида in, in out - перед вызовом подпрограммы, а для вида out, in out - в момент окон­чания выполнения подпрограммы;если спецификация параметров

9  — Корочкин А.  В.

66

Ада 95. Введение в программирование

Глава 7. Подпрограммы

67

 

включает выражение по умолчанию и имеет вид   in , то при вызове подпрограммы не обязательно сопоставление для такого параметра;