Разработка классов на языке Object Pascal. Соколов Е.В. - 21 стр.

UptoLike

Составители: 

21
лее предпочтител ьным, его д емонстрирует
Пример 2.2.2. Реализация методов класса RVector.
function RVector.Plus(v: RVector): RVector;
var i: Integer;
begin
result:=RVector.Create;
for i:=1 to Dim do
result.comp[i]:=UnitRational.Plus(self.comp[i], v.comp[i]);
end;
function RVector.Minus(v: RVector): RVector;
var i: Integer;
begin
result:=RVector.Create;
for i:=1 to Dim do
result.comp[i]:=UnitRational.Minus(self.comp[i], v.comp[i]);
end;
procedure RVector.Add(v: RVector);
var i: Integer;
begin
for i:=1 to Dim do UnitRational.Add(self.comp[i], v.comp[i]);
end;
procedure RVector.Subtract(v: RVector);
var i: Integer;
begin
for i:=1 to Dim do UnitRational.Subtract(self.comp[i], v.comp[i]);
end;
function RVector.ScalarProduct(v: RVector): Rational;
var i: Integer;
begin
result.num:=0; result.den:=1;
for i:=1 to Dim do UnitRational.Add(result,
UnitRational.Dot(self.comp[i], v.comp[i]));
end;
function RVector.GetLength: Real;
var i: Integer;
begin
result:=0;
for i:=1 to Dim do
result:=result+sqr(self.comp[i].num/self.comp[i].den);
result:=sqrt(result);
end;
function RVector.IsEqual(v: RVector): Boolean;
var i: Integer;
л ее пред почт ит ел ь ны м , егод ем онс т рирует

Пример2.2.2. Реал из ац ия м етод ов кл ас с а RVector.

function RVector.Plus(v: RVector): RVector;
var i: Integer;
begin
  result:=RVector.Create;
  for i:=1 to Dim do
     result.comp[i]:=UnitRational.Plus(self.comp[i], v.comp[i]);
end;
function RVector.Minus(v: RVector): RVector;
var i: Integer;
begin
  result:=RVector.Create;
  for i:=1 to Dim do
     result.comp[i]:=UnitRational.Minus(self.comp[i], v.comp[i]);
end;
procedure RVector.Add(v: RVector);
var i: Integer;
begin
  for i:=1 to Dim do UnitRational.Add(self.comp[i], v.comp[i]);
end;
procedure RVector.Subtract(v: RVector);
var i: Integer;
begin
  for i:=1 to Dim do UnitRational.Subtract(self.comp[i], v.comp[i]);
end;
function RVector.ScalarProduct(v: RVector): Rational;
var i: Integer;
begin
  result.num:=0; result.den:=1;
  for i:=1 to Dim do UnitRational.Add(result,
     UnitRational.Dot(self.comp[i], v.comp[i]));
end;
function RVector.GetLength: Real;
var i: Integer;
begin
  result:=0;
  for i:=1 to Dim do
     result:=result+sqr(self.comp[i].num/self.comp[i].den);
  result:=sqrt(result);
end;
function RVector.IsEqual(v: RVector): Boolean;
var i: Integer;



                                         21