ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.05.2024

Просмотров: 90

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

end;

procedure Comp.Mul(z: Comp);

var x:real;

begin x:=re*z.re – im*z.im;

im:=re*z.im + im*z.re;

re:=x;

end;

function Comp.modul;

begin result:=sqrt(sqr(re)+sqr(im));

end;

End.

Заметим, что методы Add, Sub, Mul используются для сложения, вычитания и умножения двух комплексных чисел. Здесь действует правило: при выполнении двухместных операций, первым операндом является сам объект (т.е. его поля), вторым операндом – тот который является формальным параметром метода, а результат сохраняется в полях первого операнда.

Запишем программу, которая использует созданные поля и методы класса Comp из Unit Complex для конкретных объектов a и b.

Program Use_ Complex;

Uses SysUtils,Dialogs,

Complex in ‘Complex.pas’;

var a,b:Comp;

t:real;

Begin a:=Comp.Create; {конструктор создает объекты a и b}

b:=Comp.Create;

{ Impre и Impim вводят значение действительной и мнимой части объектов a и b}

a.Impre(1);

b.Impre(3);

a.Impim(5);

b.Impim(4);

t:=b.Modul; {объект b вызывает метод Modul }

writeln(‘t=’,t:10);

a.Add(b); {объект a вызывает метод Add с параметром b}

writeln(‘Add a=’,a.Outre,‘ ’,a.Outim); {методы Outre и Outim выводят значения суммы объектов a и b }

a.Impre(1);

a.Impim(5);

a.Sub(b);

writeln(‘Sub a=’, a.Outre,‘ ’,a.Outim);

a.Impre(1);

a.Impim(5);

a.Mul(b);

writeln(‘Mul a=’, a.Outre,‘ ’,a.Outim);

Showmessage(‘результат’); {вывод в окно сообщения слова “результат” с кнопкой “ОК”}

b.Free; {уничтожение не нужных объектов методом Free}

a.Free;

End.

Заметим, что в данном примере конструктор и деструктор не описаны при описании класса, поскольку они унаследованы от предка класса Comp – класса TObject.