ВУЗ:
Составители:
Рубрика:
38
if value=0 then raise Exception.Create('Ambiguous result');
{ Если value равно нулю, возбуждается исключение с сообщением
"Неоднозначный результат". }
v:=value;
while (v mod self.base)=0 do v:=v div self.base;
if (v=1) or (v=-1) then result:=true else result:=false;
{ Делим value на base до тех пор, пока это возможно. Если в
результате остается
±
1, значит value является степенью base. }
end;
function PAryFraction.GetBase: Integer;
begin result:=self.base; end;
procedure PAryFraction.SetBase(value: Integer);
begin
if (value<>self.base) then
if self.isPrime(value) then // value должно быть простым
begin self.base:=value; self.SetNum(0); self.SetDen(1); end
else // иначе возбуждается исключение с сообщением
// "Недопустимое значение основания"
raise Exception.Create('Illegal value of base');
end;
procedure PAryFraction.SetDen(value: Integer);
begin
if (value>0) and self.isPowerOfBase(value) then
inherited SetDen(value)
else
raise Exception.Create('Illegal value of denominator');
{ Если передаваемое значение положительно и является
степенью base, то можно изменить знаменатель, вызвав
старую версию метода SetDen. Иначе возбуждается исключение
с сообщением "Недопустимое значение знаменателя". }
end;
constructor PAryFraction.Create;
begin
inherited Create;
// старый конструктор инициализирует поля num и den
self.base:=2;
end;
if value=0 then raise Exception.Create('Ambiguous result');
{ Если value равно нулю, возбуждается исключение с сообщением
"Неоднозначный результат". }
v:=value;
while (v mod self.base)=0 do v:=v div self.base;
if (v=1) or (v=-1) then result:=true else result:=false;
{ Делим value на base до тех пор, пока это возможно. Если в
результате остается ±1, значит value является степенью base. }
end;
function PAryFraction.GetBase: Integer;
begin result:=self.base; end;
procedure PAryFraction.SetBase(value: Integer);
begin
if (value<>self.base) then
if self.isPrime(value) then // value должно быть простым
begin self.base:=value; self.SetNum(0); self.SetDen(1); end
else // иначе возбуждается исключение с сообщением
// "Недопустимое значение основания"
raise Exception.Create('Illegal value of base');
end;
procedure PAryFraction.SetDen(value: Integer);
begin
if (value>0) and self.isPowerOfBase(value) then
inherited SetDen(value)
else
raise Exception.Create('Illegal value of denominator');
{ Если передаваемое значение положительно и является
степенью base, то можно изменить знаменатель, вызвав
старую версию метода SetDen. Иначе возбуждается исключение
с сообщением "Недопустимое значение знаменателя". }
end;
constructor PAryFraction.Create;
begin
inherited Create;
// старый конструктор инициализирует поля num и den
self.base:=2;
end;
38
Страницы
- « первая
- ‹ предыдущая
- …
- 36
- 37
- 38
- 39
- 40
- …
- следующая ›
- последняя »
