![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RandomRange
DFT © (2008-09-25 23:47:00)Добрый вечер!
Вот обнаружил для себя, что функция RandomRange работает не так как должна.
выдержка из справки:
RandomRange returns a random integer from the range that extends between AFrom and ATo (inclusive).
однако мои опыты показывают, что она возвращает число из диапазона от (AFrom) до (ATo-1).
Может здесь есть какая-то процессорная зависимость?
Германн (2008-09-26 01:10:00) [1]
> DFT (26.09.08 00:14) [5]
>
> Да, действительно ошибка в описании именно этой фукции.
>
В BDS2006 этой ошибки уже нет. Но есть неясность.
RandomRange returns a random integer from the range that extends between AFrom and ATo (non-inclusive). Не понятно к чему относится "(non-inclusive)". Только к ATo или к обеим границам диапазона.
Да справка одно из самых больных мест Дельфи. (Конечно не только Дельфи. Скорее трудно найти программу, где справка не является больным местом). Но уж очень это печалит.
DFT (2008-09-26 00:14:00) [2]Да, действительно ошибка в описании именно этой фукции.
Описание функции Random, более похоже на правду
function Random [ ( Range: Integer) ];
In Delphi code, Random returns a random number within the range 0 <= X < Range
Palladin (2008-09-26 00:01:00) [3]никакой зависимости нет
просто ошибка. либо в справке либо в функции
Медвежонок Пятачок (2008-09-25 23:56:00) [4]А вообще вот оно
function RandomRange(const AFrom, ATo: Integer): Integer;
begin
if AFrom > ATo then
Result := Random(AFrom - ATo) + ATo
else
Result := Random(ATo - AFrom) + AFrom;
end;
Дальше смотрим что возвращает рандом
DFT (2008-09-25 23:55:00) [5]Частный случай я оспаривать не стану
Медвежонок Пятачок (2008-09-25 23:52:00) [6]Caption := IntToStr(RandomRange(1,1));