Студопедия — ИНИЦИИРУЮЩАЯ И ЗАВЕРШАЮЩАЯ ЧАСТИ
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

ИНИЦИИРУЮЩАЯ И ЗАВЕРШАЮЩАЯ ЧАСТИ






Инициирующая и завершающая части чаще всего отсутствуют

Вместе с начинающим их словами initialization и finalization.

В инициирующей части размещаются операторы, которые исполняются до передачи управления основной программе и обычно используются для подготовки ее работы. Например, в них могут инициироваться переменные, открываться нужные файлы и т. д. В завершающей части указываются операторы, выполняющиеся после завершения работы основной программы (в них освобождаются выделенные программе ресурсы, закрываются файлы и т. д.). Если несколько модулей содержат инициирующие части, эти части выполняются последовательно друг за другом в порядке перечисления модулей в предложении uses главной программы. Если несколько модулей содержат завершающие части, эти части выполняются последовательно друг за другом в порядке, обратном перечислению модулей в предложении uses главной программы.

ДОСТУП К ОБЪЯВЛЕННЫМ В МОДУЛЕ ОБЪЕКТАМ

Пусть, например, мы создаем модуль, реализующий арифметику комплексных чисел (такая арифметика ни в стандартном Паскале, ни в Object Pascal не предусмотрена, но в Delphi 6 введен пользовательский вариант, который реализует действия над комплексными

Числами - см. п. 10.5 и модуль Source\Rtl\Common\VarCmplx.pas Каталога размещения Delphi). Арифметика комплексных чисел реализуется четырьмя функциями:

Unit Cmplx;

//---------------------------

Interface

//---------------------------

Type

Complex = record

re,im: real end; Function AddC (x,y: Complex): Complex;

Function SubC (x,y: Complex): Complex;

Function MuiC (x,y: Complex): Complex;

Function DivC (x,y: Complex): Complex;

Const

с: Complex = (re: 0.1; im: -1);

//---------------------------

Implementation

//---------------------------

Function AddC (x,y: Complex): Complex;

// Сложение комплексных чисел

Begin

Result.re:= x.re + y.re;

Result.im:= x.im + y.im

end; //AddC

Function SubC (x,y: Complex): Complex;

// Вычитание комплексных чисел

Begin

Result.re:= x.re - y.re;

Result.im:= x.im - y.im

end; //SubC

Function MulC (x,y: Complex): Complex;

// Умножение комплексных чисел

Begin

Result.re:= x.re * y.re - x.im * y.im;

Result.im:= x.re * y.im + x.im * y.re

end; //MulC

Function DivC (x,y: Complex): Complex;

// Деление комплексных чисел

Var

z: Real;

begin

z:= sqr(y.re) + sqr(y.im);

// Защищаем программу от краха в случае, когда z=0:

try- Result, re:= (x.re * у.re + x.im * y.im) / z;

Result.im:= (x.re * y.im - x.im * y.re) / z;

except

Result.re:= l.le309;

Result.im:= l.le309;

End

End

{Div.C};

End.

Чтобы создать такой модуль, следует вызвать опцию File | New I unit[ В Delphi 1 для этого используетсяопция File | New | Unit, в версиях 2...5 - опция File |

New и выбор пиктограммы на закладке New окна Репозитория. ]. Текст модуля следует сохранить в файле cmplx.pas: имя файла должно совпадать с именем модуля - только в этом случае Delphi сможет автоматически найти модуль и следить за его обновлением.

После создания модуля его имя нужно упомянуть в предложении uses того модуля, в котором будут использоваться вновь созданные подпрограммы, типы, константы (в нашем модуле - тип complex, подпрограммы Addc, subc. Mule, Dive и константа с). Пусть, например, при каждом щелчке по кнопке bbRun учебной программы создается пара случайных комплексных чисел, над которыми осуществляются все четыре арифметических действия. Тогда обработчик bbRunClickмог бы быть таким:

Implementation

uses Cmplx;

{$R *.DFM}

procedure Tform1.bbRunClick(Sender: TObject);

Var

x,y,z: Complex;

procedure Output(Operation: Char);

//Осуществляет нужное действие и выводит результат в mmOutput

Var

S: String;

Begin

case Operation of

'+': z := AddC(x,y);

'-': z:= SubC(x,y);

'*': z:= MulC(x,y);

'/': z:= DivC(x,y);

End;

S:= '('+FormatFloat('+0.0000;-0.0000',x.re)+

FormatFloat('+O.OOOOj;-O.OOOOj',x.im)+')'

+0peration+
'('+
FormatFloat('+0.0000;-0.0000',у.re)+
FormatFloat('+0.OOOOj;-0.OOOOj',у.im)+'='+
FormatFloat('+0.0000;-0.0000',z.re)+
FormatFloat('+0.OOOOj;-0.OOOOj',x.im);

mmOutput.Lines.Add(S);

end; //Output

begin //bbRunClick

x.re:= Random;

x.im := Random;

y.re:= Random;

y.im:= Random;

Output('+');

Output('-');

Output ('*');

Output ('/');

mmOutput.Lines.Add('');

End;

Обратите внимание на ссылку uses cmpix в самом начале исполняемой части - именно она делает доступными обработчику bbRunClick объекты модуля Cmplx. Эту ссылку можно вставить с помощью среды Delphi: выберите опцию File | Use Unit и в появившемся окне щелкните по имени модуля Сmplx.







Дата добавления: 2015-10-18; просмотров: 386. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Закон Гука при растяжении и сжатии   Напряжения и деформации при растяжении и сжатии связаны между собой зависимостью, которая называется законом Гука, по имени установившего этот закон английского физика Роберта Гука в 1678 году...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

Этапы и алгоритм решения педагогической задачи Технология решения педагогической задачи, так же как и любая другая педагогическая технология должна соответствовать критериям концептуальности, системности, эффективности и воспроизводимости...

Роль органов чувств в ориентировке слепых Процесс ориентации протекает на основе совместной, интегративной деятельности сохранных анализаторов, каждый из которых при определенных объективных условиях может выступать как ведущий...

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

Тема: Кинематика поступательного и вращательного движения. 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью, проекция которой изменяется со временем 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия