Файл: Лабораторная работа 2 Модульное программирование. Интерфейсы. По дисциплине Объектноориентированное программирование.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.11.2023

Просмотров: 24

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



Министерство образования и науки РФ

ФГБОУ ВО «Белгородский государственный технологический

университет им. В.Г. Шухова»

Северо-Кавказский филиал (г. Минеральные Воды)

Кафедра экономических и естественно-научных дисциплин

Лабораторная работа №2

Модульное программирование. Интерфейсы.

По дисциплине: Объектно-ориентированное программирование

Выполнил студент: Алексеенко К. Д.

группы ВМ–21

Проверил преподаватель: Базык Е. В.

г. Минеральные Воды, 2023 г.

Лабораторная работа №2.

Тема: Модульное программирование. Интерфейсы.

Цель: научиться применять модульное программирование при реализации интерфейсов.

Основы теории

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

Модуль – это автономно компилируемая коллекция программных ресурсов, предназначенная для использования другими модулями и программами.

Модульное программирование – это технология программирования, приводящая к значительному уменьшению сроков разработки программ и количества программных ошибок.

Все ресурсы модуля делятся на две группы: внешние – предназначенные для использования другими программными единицами, и внутренние – рабочие ресурсы данного модуля.

Структура модуля имеет вид:

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

Interfaсe <интерфейсная секция>

Implementation <секция реализации>

BEGIN <секция инициализации> ]

END.

Имя модуля должно совпадать с именем файла, в котором он содержится.

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

Секция реализации содержит описание подпрограмм
, объявленных в интерфейсной секции, и описание внутренних ресурсов модуля. Обращение к этим ресурсам возможно только из подпрограмм, описанных в том же модуле.

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

В результате компиляции модуля система формирует одноимённый файл, имеющий расширение .tpu.

Среда языка Borland Pascal предусматривает три режима компиляции программы, использующей модули (главное меню, пункт Compile):

  • Compile – компилируется только основная программа, все модули должны быть предварительно откомпилированы в tpu–файлы и размещены либо в текущем каталоге, либо в одном из каталогов, указанных как источники tpu–файлов в настройках среды (Options/Directories);

  • Make – модули, для которых не обнаружены tpu–файлы компилируются из соответствующих pas–файлов, которые должны находиться либо в текущем каталоге, либо в одном из каталогов, указанных как источники pas–файлов в настройках среды (Options/Directories);

  • Build – все ранее откомпилированные tpu–модули игнорируются и все модули компилируются из своих исходных файлов заново.

В процессе отладки модулей целесообразно использовать режим Build, а при отладке программы – режим Compile.

Демонстрационный пример

Unit Mod_Mas1; {Имя файла: Mod_Mas1.pas}

Interface

{Блок объявления типов:}

Type TM1_r = array[1..15] of real;

{Блок объявления подпрограмм:}

Procedure Input (var n: byte; var X: TM1_r); {возвращает количество элементов массива X и их значения}

Procedure Print (n: byte; X: TM1_r); {выводит на экран количество элементов массива X и их значения}

Function Sum (n: byte; X: TM1_r): real; {возвращает сумму элементов массива X}

Implementation

Uses Crt;

Procedure Input;

Var i: byte; {i – локальный ресурс – параметр цикла}

Begin

writeln (‘Введите:’);

write (‘количество элементов массива = ’);



readln (n);

writeln (‘значения элементов: ’);

For i:= 1 to n do

begin

write (‘X[’, i, ‘] = ’);

readln (X[i]);

end;

End;

Procedure Print;

Var i: byte; {i – локальный ресурс – параметр цикла}

Begin

writeln (‘Значения элементов массива равны: ’);

For i:= 1 to n dо

writeln (‘X[’, i, ‘] = ’, X[i]: 8: 2);

End;

Function Sum;

Var i: byte; {i – локальный ресурс – параметр цикла}

s: real; {s – локальный ресурс для накопления суммы}

Begin

s:= 0;

For i:= 1 to n do

s:= s+X[i];

Sum:= s; {присваивание выполнено для передачи значения суммы во внешнюю среду}

End;

BEGIN

ClrScr;

writeln (‘Модуль разработан Алексеенко К. Д.’);

readln;

END.