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

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

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

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

Добавлен: 10.11.2023

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

Скачиваний: 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}ImplementationUses Crt;Procedure Input;Var i: byte; {i – локальный ресурс – параметр цикла}Beginwriteln (‘Введите:’);write (‘количество элементов массива = ’);

readln (n);writeln (‘значения элементов: ’);For i:= 1 to n dobeginwrite (‘X[’, i, ‘] = ’);readln (X[i]);end;End;Procedure Print;Var i: byte; {i – локальный ресурс – параметр цикла}Beginwriteln (‘Значения элементов массива равны: ’);For i:= 1 to n dоwriteln (‘X[’, i, ‘] = ’, X[i]: 8: 2);End;Function Sum;Var i: byte; {i – локальный ресурс – параметр цикла}s: real; {s – локальный ресурс для накопления суммы}Begins:= 0;For i:= 1 to n dos:= s+X[i];Sum:= s; {присваивание выполнено для передачи значения суммы во внешнюю среду}End;BEGINClrScr;writeln (‘Модуль разработан Алексеенко К. Д.’);readln;END.