Введение в объектно-ориентированное программирование на языке Object Pascal. Соколов Е.В. - 10 стр.

UptoLike

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

10
result:=res;
{ Последняя инструкция эквивалентна выражению Plus:=res;
Локальная переменная result неявно объявляется в каждой функции
и имеет тип, совпадающий с типом возвращаемого значения.
По завершении работы функции содержимое этой переменной
передается вызывающей программе. }
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;
function Slash(r1,r2:Rational): Rational;
var res: Rational;
begin
if r2.num=0 then raise Exception.Create('Division by zero');
{ Если числитель второго аргумента равен нулю, возбуждается
исключение с сообщением "Деление на ноль". }
res.num:=r1.num*r2.den;
res.den:=r1.den*r2.num;
Normalize(res); Reduce(res);
result:=res;
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;
...
{ Определение оставшихся четырех процедур и функций совершенно
аналогично и потому здесь опускается. В реальном коде оно
обязательно должно присутствовать. }
end.
       result:=res;

{ Последняя инструкция эквивалентна выражению Plus:=res;
  Локальная переменная result неявно объявляется в каждой функции
  и имеет тип, совпадающий с типом возвращаемого значения.
  По завершении работы функции содержимое этой переменной
  передается вызывающей программе. }

  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;

function Slash(r1,r2:Rational): Rational;
  var res: Rational;
  begin
    if r2.num=0 then raise Exception.Create('Division by zero');

  { Если числитель второго аргумента равен нулю, возбуждается
    исключение с сообщением "Деление на ноль". }

    res.num:=r1.num*r2.den;
    res.den:=r1.den*r2.num;
    Normalize(res); Reduce(res);
    result:=res;
  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;
...

{ Определение оставшихся четырех процедур и функций совершенно
  аналогично и потому здесь опускается. В реальном коде оно
  обязательно должно присутствовать. }

end.



                                   10