Вниз
Скачать: CL | DM;

Почему random(4) всегда возвращает 0???   Найти похожие ветки 

← →
greenrul ©   (2001-12-29 14:42) [0]

Пример - procedure changebanner;
var rand:integer;
begin
rand:=random(4);
ShowMessage(IntToStr(rand));
end;


← →
panov ©   (2001-12-29 14:47) [1]

Есть еще инициализация генератора: Randomize;


← →
Andrey ©   (2001-12-29 14:48) [2]

var I: Integer;
begin
Randomize;
for I := 1 to 50 do begin
{ Write to window at random locations }
Canvas.TextOut(Random(Width), Random(Height), "Boo!");
end;
end;

Взято из Help-a


← →
Вадим ©   (2001-12-29 15:22) [3]

Randomize надо вызывать только 1 раз при старте программы


← →
greenrul ©   (2001-12-29 15:28) [4]

Ну а почему тот-то код не работает?

как я понял, если я по таймеру делаю Random, то Randomise мне не поможет?


← →
Andrey ©   (2001-12-29 15:35) [5]

> greenrul
Встречный вопрос. Ты Help читал?

P.S. Потому что не инициализирован генератор.


← →
panov ©   (2001-12-29 15:35) [6]

>greenrul © (29.12.01 15:28)
Достаточно один раз при старте программы проинициализировать генератор случайных чисел процедурой Randomize.


← →
~skaminski~   (2001-12-29 17:46) [7]

2 Вадим
Randomize можно вывзывать сколько раз душеньке угодно, и слово "достаточно" ни при чем. Я, напр., вызываю его по таймеру раз в 1 мин примерно ;)


← →
yaJohn ©   (2001-12-29 18:10) [8]

2 ~skaminski~
S tem je uspehom mojno vizivat raz v minutu sam random. A luchshe - po OnMouseMove.
A vizov Randomize po taimeru... Gdeto ya chital, chto Randomaize dlia inicializacii Now() ispolzuet...


← →
Dimaond Cat ©   (2001-12-30 14:12) [9]

А еще лучше самому рандомчик написать, потому как стандартный довольно галимый :о)


← →
Yaro ©   (2001-12-30 14:50) [10]

>> ~skaminski~ - Я бы не советовал вызывать его "сколько душе угодно", он довольно тормознутый (это еще из паскаля помню :).

>> Dimaond Cat - А на счет своего рандома - это не так-то и просто.
Если не привязывать его к таймеру компьютера, чтоб быстрее работал, то это довольно-таки тупо выходит... Вот попробуйте код, приведенный ниже и посмотрите на результаты. У меня такое мнение сложилось (я про стандартный рандом), что он приблизительно по такому же принципу работает, только RANDOMIZE значение N из таймера берет...



var
n: real;

function _Random(_n: word): word;
begin if n = 0 then n := sqr(_n);
n := sqr(_n/n);
while not (n <= _n) do n := n/2;
Result := round(n);
end;




Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.008 c
1-52591
Zabrodin_Lex
2001-12-27 12:37
2002.01.17
проблема с reset() в методе OBJECTа


3-52476
Jon
2001-12-13 12:56
2002.01.17
Подключение к mySql в Delphi 5


14-52658
p@s
2001-11-22 09:12
2002.01.17
Генератор отчетов.


4-52680
Art
2001-11-16 15:13
2002.01.17
А как добавить свой пункт в меню свойства файла или отправить???


1-52597
Сенченко Андрей
2001-12-29 14:20
2002.01.17
Хочу чтобы меня видели !!! ( DLL )




   Наверх