Использование модуля в основной программе
Чтобы использовать подпрограммы, константы, типы, переменные, описанные в интерфейсе модуля, в основной программе следует записать слово uses, после которого указать имя (имена) модуля (модулей). После этого в основной программе можно использовать любые идентификаторы (констант, типов, переменных, подпрограмм), указанные в интерфейсах перечисленных модулей.
Пример. Программа, меняющая в массиве максимальное и минимальное числа.
program EXAMPLE26; {заголовок программы}
uses Unitl, Unit2; {используемые модули}
var i: Integer;
begin
Change(Arr); {процедура замены в Unitl,
массив Arr - в Unit2}
for i := 1 to N do {N-B Unit2}
WriteLn(Arr(i])
end.
{модули, расположенные в других файлах}
unit Unitl; {модуль с основной подпрограммой}
interface {интерфейс первого модуля}
uses Unit2; {использование модуля с параметрами}
procedure Change (var Arr: Mass); {заголовок процедуры}
implementation {исполнительная часть}
uses UnitS; {использование модуля с вспомогательной подпрограммой}
procedure Change; {сокращенный заголовок}
var Max, Min, i; Integer;
begin
Max := 1; Min := 1;
for i := 1 to N do {N-в Units}
begin
if Arr[i] > Arr[Max]
then Max := i;
if Arrti] < Arr[Min]
then Min := i
end;
Swap(Arr[Max], Arr[Min]) {замена местами макс.и мин.чисел, процедура в Units}
end
end. {конец Unitl}
unit Unit2; {модуль с параметрами}
interface {интерфейс второго модуля}
const N = 5; {число элементов}
type Mass = array!1..N] of Real; {тип массива}
const Arr: Mass = (0.5, -2.0, 1.0, 3.5, 7.0);
{типизированная константа}
implementation {исполнительная часть}
end. {конец UNIT2}
unit UnitS; {модуль с вспомогательной подпрограммой}
interface {интерфейс третьего модуля}
procedure Swap(var X, Y: Real}
implementation {исполнительная часть}
procedure Swap(var X, Y: Real) {перемещение двух чисел}
var Z: Real;
begin
Z := X; X :- Y; Y := Z
end
end. {конец UNITS}
Использование идентификаторов элементов модуля
Как правило, идентификаторы объектов модуля используются в основной программе (или другом модуле) обычным образом. Однако может оказаться, что используемый идентификатор элемента модуля совпадает с идентификатором использующей его программы. Чтобы различить их, при обращении к элементу модуля указывается имя модуля, а затем через точку – идентификатор объекта (аналогично использованию полей записи).
Пример,
program EXAMPLE;
uses Unitl;
var Result, X: Real;
begin
Read (X); {чтение переменной программы}
Read (Unitl.X); {чтение переменной модуля}
Result := X {переменная программы}
+Unitl.X {переменная модуля}
end
.
unit Unitl;
interface
var X: Real; {переменная модуля}
implementation
end.
19.2 Подпрограммы в языке C
Дата добавления: 2021-03-18; просмотров: 328;