Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Бага в IntPower для F_P


Страницы:   1 2

Galkov ©   (2007-02-03 13:44:00) 

//[function IntPower]
function IntPower(Base: Extended; Exponent: Integer): Extended;
{$IFDEF F_P}
begin
 if Exponent = 0 then
 begin
   Result := 1.0;
   Exit;
 end;
 if Exponent < 0 then
 begin
   Exponent := -Exponent;
   Base := 1.0 / Base;
 end;
 Result := Base;
 REPEAT
   Result := Result * Base;
   Dec( Exponent );
 UNTIL Exponent <= 0;
end;
{$ELSE DELPHI}


Даже и комментировать неудобно :((
либо так:

 Result := Base;
 WHILE Exponent>1 do begin
   Result := Result * Base;
   Dec( Exponent );
 end;


либо эдак:

 Result := 1.0;
 REPEAT
   Result := Result * Base;
   Dec( Exponent );
 UNTIL Exponent <= 0;


но уж не так, как в дистрибутиве :((


Galkov   (2007-02-05 01:41:00) [21]


> А чему будет равно 2**(-1). В моем варианте 0.5, как и должно
> быть

Не правда
В Вашем варианте 0.25 !!!


Vladimir Kladov   (2007-02-04 09:00:00) [22]

хорошо. Вопрос встречный: 2**0 = ? по вашему варианту получается 2. Математика утверждает, что 1. А чему будет равно 2**(-1). В моем варианте 0.5, как и должно быть. А в вашем?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо