ВУЗ:
Составители:
Рубрика:
71
var a,b:Integer;
begin // используется алгоритм Евклида поиска НОД
a:=Abs(r.num); b:=r.den;
while a<>0 do
if a>=b then a:=a-b else b:=b-a;
// по завершении цикла b=НОД(r.num,r.den)
r.num:=r.num div b; r.den:=r.den div b;
end;
{ Определения подпрограмм, объявленных в разделе интерфейса. }
function Plus(r1,r2:Rational): Rational;
var res: Rational;
begin
res.num:=r1.num*r2.den+r1.den*r2.num;
res.den:=r1.den*r2.den;
Normalize(res); Reduce(res);
result:=res;
end;
function Minus(r1,r2:Rational): Rational;
var res: Rational;
begin
res.num:=r1.num*r2.den-r1.den*r2.num;
res.den:=r1.den*r2.den;
Normalize(res); Reduce(res);
result:=res;
end;
function Dot(r1,r2:Rational): Rational;
var res: Rational;
begin
res.num:=r1.num*r2.num;
res.den:=r1.den*r2.den;
Normalize(res); Reduce(res);
result:=res;
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;
var a,b:Integer; begin // используется алгоритм Евклида поиска НОД a:=Abs(r.num); b:=r.den; while a<>0 do if a>=b then a:=a-b else b:=b-a; // по завершении цикла b=НОД(r.num,r.den) r.num:=r.num div b; r.den:=r.den div b; end; { Определения подпрограмм, объявленных в разделе интерфейса. } function Plus(r1,r2:Rational): Rational; var res: Rational; begin res.num:=r1.num*r2.den+r1.den*r2.num; res.den:=r1.den*r2.den; Normalize(res); Reduce(res); result:=res; end; function Minus(r1,r2:Rational): Rational; var res: Rational; begin res.num:=r1.num*r2.den-r1.den*r2.num; res.den:=r1.den*r2.den; Normalize(res); Reduce(res); result:=res; end; function Dot(r1,r2:Rational): Rational; var res: Rational; begin res.num:=r1.num*r2.num; res.den:=r1.den*r2.den; Normalize(res); Reduce(res); result:=res; 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; 71
Страницы
- « первая
- ‹ предыдущая
- …
- 69
- 70
- 71
- 72
- 73
- …
- следующая ›
- последняя »