Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание по учебной практике №2.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
49.01 Кб
Скачать

3.5 Модуль

Модуль это автономно компилируемая единица программы, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции), и, возможно, некоторые исполняемые операторы инициирующей части. В модулях явным образом выделяется некоторая «видимая» интерфейсная часть, в которой сконцентрированы описания глобальных типов, констант, переменных, заголовки глобальных процедур и функций. Тела процедур и функций располагается в исполняемой части модуля, которая может быть скрыта от пользователя.

Структура:

Unit <имя модуля>;

Interfase <интерфейсная часть>

Implementation <исполняемая часть>

Begin <инициирующая часть>

End.

Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается с помощью ключевого слова

Uses <список модулей> с которыми устанавливается связь

Если Uses используется, то оно должно открывать раздел описаний основной программы.

Uses CTR, Craph, Clobal;

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

Unit Cmplx;

Interface

Type

Complex=record

re,im:real;

end;

Procedure Add(x,y:complex; var z:complex);

Чтобы основной программе стал доступен тип Complex и процедура из модуля Cmplx, следует написать

Uses Cmplx;

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

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

Unit Cmplx;

Interface

Type

Complex=record

re,im:real;

end;

Procedure Add(x,y:complex; var z:complex);

Implementation

Procedure Add;

Begin

z.re:=x.re+y.re;

z.im:=x.im+y.im;

End;

End.

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

После объявления Uses программе станут доступны все объекты объявленные в интерфейсной части модуля Cmplx.

Uses Cmplx;

Var

a,b,c:complex;

begin

a.re:=1; b.re:=1; a.im:=1; b.re:=1;

Add(a,b,c);

WriteLn(‘Сложение’, c.re,c.im);

End.

3.6 Директива компилятору по работе с файлами

С помощью директивы компилятора {$I-} отключается автоматический контроль ошибок ввода-вывода. Если этого не сделать, то отсутствие файла приведет к аварийному завершению работы. Если делается попытка инициировать чтение из несуществующего файла, возникает ошибка, которая может быть сообщена программе ненулевым значением встроенной функции IOResult.

Var

f:file of char;

begin

assign(f, ‘file.dat’);

{$I-} {Отключаем контроль ошибок ввода-вывода}

reset(f)

{$I+} {Включаем контроль ошибок ввода-вывода}

if IOResult<>0 then

… {Файл не существует}

else

… {Файл существует}

end.