Файл: Лабораторная работа 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.