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

UptoLike

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

72
procedure Add(var r1:Rational; r2:Rational);
var _num,_den:Integer;
begin
_num:=r1.num*r2.den+r1.den*r2.num;
_den:=r1.den*r2.den;
r1.num:=_num; r1.den:=_den;
Normalize(r1); Reduce(r1);
end;
procedure Subtract(var r1:Rational; r2:Rational);
var _num,_den:Integer;
begin
_num:=r1.num*r2.den-r1.den*r2.num;
_den:=r1.den*r2.den;
r1.num:=_num; r1.den:=_den;
Normalize(r1); Reduce(r1);
end;
procedure MultiplyBy(var r1:Rational; r2:Rational);
var _num,_den:Integer;
begin
_num:=r1.num*r2.num;
_den:=r1.den*r2.den;
r1.num:=_num; r1.den:=_den;
Normalize(r1); Reduce(r1);
end;
procedure DivideBy(var r1:Rational; r2:Rational);
var _num,_den:Integer;
begin
if r2.num=0 then raise Exception.Create('Division by zero');
_num:=r1.num*r2.den;
_den:=r1.den*r2.num;
r1.num:=_num; r1.den:=_den;
Normalize(r1); Reduce(r1);
end;
function AreEqual(r1,r2:Rational): Boolean;
begin
if r1.num*r2.den=r2.num*r1.den
then result:=true
else result:=false;
end;
function AsString(r: Rational): String;
begin
result:=IntToStr(r.num)+'/'+IntToStr(r.den);
end;
end.
procedure Add(var r1:Rational; r2:Rational);
var _num,_den:Integer;
begin
  _num:=r1.num*r2.den+r1.den*r2.num;
  _den:=r1.den*r2.den;
  r1.num:=_num; r1.den:=_den;
  Normalize(r1); Reduce(r1);
end;
procedure Subtract(var r1:Rational; r2:Rational);
var _num,_den:Integer;
begin
  _num:=r1.num*r2.den-r1.den*r2.num;
  _den:=r1.den*r2.den;
  r1.num:=_num; r1.den:=_den;
  Normalize(r1); Reduce(r1);
end;
procedure MultiplyBy(var r1:Rational; r2:Rational);
var _num,_den:Integer;
begin
  _num:=r1.num*r2.num;
  _den:=r1.den*r2.den;
  r1.num:=_num; r1.den:=_den;
  Normalize(r1); Reduce(r1);
end;
procedure DivideBy(var r1:Rational; r2:Rational);
var _num,_den:Integer;
begin
  if r2.num=0 then raise Exception.Create('Division by zero');
  _num:=r1.num*r2.den;
  _den:=r1.den*r2.num;
  r1.num:=_num; r1.den:=_den;
  Normalize(r1); Reduce(r1);
end;
function AreEqual(r1,r2:Rational): Boolean;
begin
  if r1.num*r2.den=r2.num*r1.den
     then result:=true
     else result:=false;
end;
function AsString(r: Rational): String;
begin
  result:=IntToStr(r.num)+'/'+IntToStr(r.den);
end;
end.




                                 72