ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
