русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Implementation


Дата додавання: 2014-11-28; переглядів: 771.


{У розділі реалізації (Implementation) модуля перебувають тіла процедур і функцій,

оголошених в интерфейсной частини.

Розділ реалізації є часткам. Усі оголошення, зроблені тут можуть бути

видимі тільки усередині даного розділу модуля.

Усі константи, типи, змінні, процедури й функції, оголошені в

интерфейсной частини видимі в розділі реалізації.

У розділі реалізації можуть перебувати її власні додаткові оголошення,

невидимі будь-яким програмам, що використовують модуль.

Розділ Uses може перебувати в частині реалізації відразу після

зарезервованого слова Implementation.

Заголовок процедури/функції в розділі реалізації повинен бути ідентичний

оголошенню в розділі інтерфейсу}

begin

{звичайно "головна програма" модуля порожня. Тут можна давати початкові

значення даним модуля, відкривати використовувані їм файли, якщо такі є,

і т.п.}

end.

Для роботи з координатами крапок на площині створимо найпростіший модуль і викличемо його підпрограми його при написанні нової програми:

unit Points;

interface

type point = array [1..2] of real;

procedure put (var p:point;x,y:real);

function distance (p1,p2:point):real;

function corner (p1:point):integer;

implementation

procedure put (var p:point;x,y:real);

begin

p[1]:=x; p[2]:=y;

end;

function distance (p1,p2:point):real;

begin

distance:=sqrt(sqr(p1[1]-p2[1])+sqr(p1[2]-p2[2]));

end;

function corner (p1:point):integer;

begin

if p1[1]>0 then begin

if p1[2]>0 then corner:=1

else if p1[2]<0 then corner:=4

else corner:=0;

end

else if p1[1]<0 then begin

if p1[2]>0 then corner:=2

else if p1[2]<0 then corner:=3

else corner:=0;

end

else corner:=0;

end;

begin

end.

Наш модуль визначає тип даних Point (крапка) як масив з 2 дійсних чисел. Процедура put дозволяє задати для крапки значення x- і y-координати, функція distance повертає відстань між двома крапками, а функція corner – номер координатної чверті, у якій перебуває крапка, або 0, якщо крапка лежить на одній з осей координат. Зрозуміло, реальні модулі можуть включати сотні функцій, якщо предметна область, яку вони моделюють, досить складна. Тепер напишемо маленьку тестову програму, що використовує наш модуль:

uses Points;

var a,b:Point;

begin

put (a,1,1);

put(b,0,0);

writeln ('Відстань від A до B=',distance(a,b):8:3);

writeln ('Номер координатної чверті для A=',corner(a));

end.

Оператор uses, що підключає модуль, зазначений у першому рядку програми. Під час компіляції цієї програми в поточному каталозі повинен бути присутнім файл points.tpu, що містить створений раніше модуль Points.

При складанні складної програми Паскаль шукає модулі тільки в тих папках, які перераховані в поле введення Unit directories вікна Directories верхнього меню Options, тому всі готові модулі випливає або поміщати в одну із цих папок, або дописати в поле введення потрібні шляхи до папок. У Додатку 4 приводиться повний лістинг модуля для роботи з "мишею" із програми на Паскалі й тести для нього.

 


<== попередня лекція | наступна лекція ==>
Призначення й структура модулів | Модуль CRT і створення простих інтерфейсів


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн