- •12.Списки
- •Interface
- •Implementation
- •13.Модули
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •14.Таблицы
- •Interface
- •Implementation
- •15.Графика, отображение графиков функций
- •Interface
- •Implementation
- •Initialization
- •16.Графика, примитивы
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Initialization
- •17.Графика, растровые изображения и анимация
- •Interface
- •Implementation
- •Initialization
- •Interface
- •Implementation
- •18.Тестирование и отладка
- •19.Квадратное уравнение
- •Interface
- •20.Класс tThread
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •21.Класс tStream
- •Interface
- •Implementation
- •Initialization
- •Interface
- •Implementation
- •Initialization
- •22.Создание в Delphi кроссплатформенного приложения
13.Модули
Подготовка к работе
По рекомендованной литературе изучить назначение и использование модулей и DLL (Dynamic Linked Library = динамически связываемая библиотека);
Разработать алгоритмы решения задач.
Составить программы решения задач.
Контрольные вопросы
Что такое модуль? Его назначение и создание.
Структура модуля.
Назначение и содержание секций Interface, Implementation, Initialization, Finalization.
Связывание модуля с вызывающей программой.
Что такое DLL? Ее назначение и создание.
Структура DLL.
Экспортируемые и внутренние подпрограммы DLL.
Назначение и содержание списка Exports.
Связывание DLL с вызывающей программой.
Способы вызова подпрограмм из DLL.
Задание к работе
Создать вызывающую программу, использующую модуль комплексной арифметики Complex, содержащий 4 функции: сложение, вычитание, умножение и деление. Вызывающая программа должна выполнить функцию 1 с комплексными операндами Comp1=a + i*b и Comp2=c + i*d b и функцию деления Comp1 на ноль. Варианты заданий в Табл. 13 .1. Проект – приложение.
Повторить задание 1, модуль в виде DLL Complex2. Проект – приложение.
Табл. 13.1. Варианты заданий
№ |
a |
b |
c |
d |
Функция 1 |
1 |
1 |
2 |
3 |
4 |
Сложение |
2 |
5 |
6 |
7 |
8 |
Вычитание |
3 |
9 |
10 |
11 |
12 |
Умножение |
4 |
4 |
1 |
2 |
3 |
Сложение |
5 |
8 |
5 |
6 |
7 |
Вычитание |
6 |
12 |
9 |
10 |
11 |
Умножение |
7 |
3 |
8 |
1 |
2 |
Сложение |
8 |
7 |
14 |
5 |
6 |
Вычитание |
9 |
11 |
12 |
9 |
10 |
Умножение |
10 |
2 |
3 |
4 |
1 |
Сложение |
11 |
6 |
7 |
8 |
5 |
Вычитание |
12 |
10 |
11 |
12 |
9 |
Умножение |
13 |
4 |
1 |
3 |
12 |
Сложение |
14 |
8 |
5 |
7 |
10 |
Вычитание |
15 |
12 |
9 |
11 |
68 |
Умножение |
Пример выполнения
Задание 1
Создать вызывающую программу, использующую модуль комплексной арифметики Complex, содержащий 4 функции: сложение, вычитание, умножение и деление. Вызывающая программа должна выполнить функцию сложения с комплексными операндами Comp1=6 + i*8 и Comp2=7 + i*11 функцию деления Op1 на ноль.
Командой File=>New вызываем окно архива и выбираем в нем Unit (модуль без формы). Получаем в окне Редактора кода страницу шаблона модуля с именем Unit1.
В редакторе кода заносим код модуля. Секции Initialization и Finalization не используем.
Сохраним модуль с именем Complex.Pas.
Компилируем модуль.
Командой Файл => Создать => Приложение создаем проект вызывающей программы. Форма приложения приведена на рис. 13 .4.
рис. 13.4. Форма вызывающей программы
Форма содержит:
Метки Label1…Label6 для отображения поясняющих надписей.
Однострочные редакторы Edit1…Edit4 для ввода значений переменных a, b, c, d.
Многострочный редактор Memo1 для вывода результатов.
Кнопки BitBtn1…BitBtn4 с именами Ввод, Выполнить, Очистить, Закрыть. Кнопка Ввод принимает значения введенных переменных, Копка Выполнить осуществляет вычисления и выводит результаты. Кнопка Очистить удаляет содержимое поля результатов, Кнопка Закрыть завершает работу программы (дублирует стандартную кнопку закрытия окна Windows).
В коде модуля формы вызывающей программы добавляем:
В строку uses ссылку на модуль Complex.
В раздел var переменные a,b,c,d типа real и Comp1, Comp2, Comp3 типа TComplex.
Создаем обработчики нажатия кнопок.
Сохраняем проект под именем Prg_13_1.
Листинг модуля Complex:
unit Complex; // Комплексная арифметика