Математическая модель задачи.

Постановка задачи.

Пример реализации модуля.

Часть инициализации.

Часть реализации.

Интерфейсная часть.

Заголовок модуля.

Структура модуля

Заголовок модуля состоит из зарезервированного слова 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);