Математическая модель задачи.
Постановка задачи.
Пример реализации модуля.
Часть инициализации.
Часть реализации.
Интерфейсная часть.
Заголовок модуля.
Структура модуля
Заголовок модуля состоит из зарезервированного слова Unit и следующего за ним имени модуля:
Unit <имя_модуля>;
Имя модуля должно совпадать с именем файла, в котором хранится текст модуля:
<имя_модуля>.pas
Как уже было сказано, оттранслированный модуль хранится в файле
<имя_модуля>.tpu
В интерфейсной части, начинающейся с зарезервированного слова Interface, содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), доступных программам и модулям, к которым подключена данная библиотека.
Interface
<объявления>
За словом Interface может следовать предложение Uses. Что касается подпрограмм, в интерфейсную часть модуля помещают только их заголовки. Например,
Unit Modul;
Interface
uses crt;
const n=100;
type
Vector=array[1..n] of char;
procedure input(R:integer; Name:char; var s:Vector);
procedure output(R:integer; Name:char; h:Vector); …
В части реализации, начинающейся с зарезервированного слова Implementation, следуют определения всех подпрограмм, объявленных в интерфейсной части, а также в ней могут быть объявлены локальные для модуля объекты:
Implementation
<определения>
За словом Implementation может также следовать предложение Uses.
Определение подпрограммы, объявленной в интерфейсной части, начинается с заголовка, в котором можно опустить список формальных параметров и тип результата для функций, т. к. они описаны в интерфейсной части.
Часть инициализации является необязательной, начинается с операторной скобки beginи состоит из операторов, исполняемых до передачи управления основной программе и обычно используемых для подготовки к ее работе (например, могут инициироваться переменные, открываться необходимые файлы и т. д.). В случае отсутствия части инициализации не рекомендуется делать ее пустой, т. е операторную скобку begin вообще не следует писать.
Заканчивается модуль операторной скобкой end с точкой.
Написать модуль, который содержит подпрограммы, обеспечивающие работу с комплексными числами.
a, b и c – комплексные числа вида r + m∙i, где i2 = -1.
При реализации на PASCAL можно представить комплексное число как запись, состоящую из двух вещественных полей r и m.
Над комплексными числами можно выполнять следующие унарные операции:
1) получения комплексно-сопряженного числа:
c.r=a.r;
c.m=-a.m;
2) вычисления модуля комплексного числа:
Над комплексными числами можно выполнять следующие бинарные операции вычисления:
1) суммы с=a+b:
c.r=a.r+b.r;
c.m=a.m+b.m;
2) разности с=a-b:
c.r=a.r-b.r;
c.m=a.m-b.m;
3) произведения с=a*b:
c.r=a.r*b.r-a.m*b.m;
c.m=b.r*a.m+a.r*b.m;
4) частного с=a/b:
c.r=(a.r*b.r+a.m*b.m)/(b.r2+b.m2);
c.m=(b.r*a.m-a.r*b.m)/(b.r2+b.m2);