Справочное руководство по языку Ада-83


Компилируемые модули библиотечные модули - часть 4


Так, в компилируемом модуле имя библиотечного пакета может быть дано в спецификаторе использования и служит для формирования расширенных имен; библиотечные подпрограммы можно вызывать; можно описать конкретизации библиотечного настраиваемого модуля.

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

Пример 1. Главная, программа.

Ниже приведен пример главной программы, состоящей из одного компилируемого модуля — процедуры печати вещественных корней квадратного уравнения. Предполагается, что в программной библиотеке уже содержится предопределенный пакет TEXT-10 и заданный пользователем пакет REAL-OPERATIONS (содержащий определения типа REAL и пакетов REAL-10 и REAL-FUNCTIONS). Такие пакеты могут быть использованы и другими главными программами.

with TEXT_IO, REAL_OPERATIONS; use REAL_OPERATIONS;

procedure QUADRATIC_EQUATION is

А, В, С, D : REAL: use REAL_IO, -- обеспечивает прямую видимость GET и PUT для REAL TEXT_IO, -— обеспечивает прямую видимость NEW-LINE и PUT для строк REAL_FUNCTIONS; -— обеспечивает прямую видимость функции SORT begin

GET(A); GET(B); GET(C); D := B**2 - 4.0*A*C; if D < 0.0 then

PUT("lmaginary Roots."); else

PUT("Real Roots : XI = "); PUT((-B - SQRT(D))/(2.0*A)); PUT(" X2 = "); PUT((-B + SQRT(D))/(2.0*A)); end if;

NEW_LINE; end QUADRATIC_EQUATION;

Примечание к примеру.

В спецификаторах совместности компилируемого модуля надо упоминать имена только тех библиотечных подпрограмм или пакетов, видимость которых действительно необходима внутри модуля. Нет необходимости (и не следует) упоминать имена других библиотечных модулей, используемых внутри модулей, перечисленных в этих спецификаторах совместности, кроме тех, которые используются непосредственно в данном компилируемом модуле. Например, в теле пакета REAL-OPERATIONS могут потребоваться некоторые элементарные операции, определенные в других пакетах.




Начало  Назад  Вперед



Книжный магазин