Поговорим о случайных числах в Delphi
Поговорим о случайных числах в Delphi Поговорим о случайных числах в Delphi В этой статье я постараюсь рассказать Вам, что такое генератор случайных чисел, как им пользоваться и как всегда рассмотрим примеры использования случайных чисел в Delphi. Процедура Randomize Эта процедура инициализирует (проще говоря запускает) генератор случайных чисел. Надо также заметить, что генератор случайных чисел может быть инициализирован не только с помощью обращения к Randomize, но и с помощью присвоения переменной RandSeed (об этом поговорим ниже). Без инициирования генератора случайных чисел обращения к соответствующим функциям выбора случайного числа всегда будут давать один и тот же результат. Получение случайного числа Для того, чтобы получить случайное число нужно воспользоваться функцией Random. Вот ее заголовок: function Random [ ( Range: Integer) ]; Если обращаться к функции без параметров, то она вернет значение типа Real в диапазоне: 0 <= X < 1 А если в качестве параметра указано целое число k, то функция вернет целочисленное значение в диапазоне: 0 <= X < k, или, для наглядности, можно записать так: 0 <= X <= k-1 Важно что реализация функции Random может меняться в зависимости от версии компилятора, поэтому не рекомендуется использовать эту функцию, например, в шифровании. Пример использования функции Random. Вы легко можете собрать небольшой тир, используя таймер и картинку Image, ну и конечно же генератор случайных чисел. Поставим на форму таймер Timer1 и картинку Image1 (не забудьте загрузить в нее изображение) и напишем обработчик события OnTimer
begin
Randomize; //запускаем генератор случайных чисел
Image1.left:=Random(Form1.width);
Image1.top:=Random(Form1.height);
end;
begin
Timer1.Enabled:=false; //остановим таймер
Showmessage('Попадание в цель!');
Timer1.Enabled:=true; //запустим его обратно
end;
//заполним массив
for i:= 1 to 10 do a[i]:=Random(10);
//Выведем массив на канву формы
for i:= 1 to 10 do Canvas.TextOut(10+10*i,10,IntToStr(a[i]));
var RandSeed: LongInt;
begin
RandSeed:=random(10);
ShowMessage(IntToStr(RandSeed));
end;
Отправить комментарий