Как написать на Delphi рандомизатор?
А сейчас вроде сам додумал надо перед рандом рандомайз написать. А какие-нибудь еще варианты рандомизаторов есть?
Подскажите плиз что за ошибка сам понять не могу. Мне нужен рандомизатор который выдает значения из интервала (0,1) Функия random выдает число 0 <=x<1, т.е. из полуинтревала [0,1). Чтобы поправить это дело пишу такую функцию:

Function GetRand:real;Компилится нормально, но в процессе исполнения программа вылетает с ошибкой. В чем ошибка не могу понять
begin
randomize;
GetRand:=random;
While GetRand=0 do
begin
randomize;
GetRand:=random;
end;
end;

Чтобы Random нормально работал надо в начале проги инициализировать RandSeed
каждый раз по-разному. Функция Randomize делает это по таймеру.
каждый раз по-разному. Функция Randomize делает это по таймеру.
Randomize один раз надо делать
> While GetRand=0 do
Вот так точно можно делать?
GetRand в данном случае может означать рекурсивный вызов функции.
Вот так точно можно делать?
GetRand в данном случае может означать рекурсивный вызов функции.
Randomize еще один убрал. Все равно выдает такую ошибку:


Т.е. сейчас выглядит так:
Function GetRand:real;
begin
randomize;
GetRand:=random;
While GetRand=0 do
begin
GetRand:=random;
end;
end;
замени GetRand в
while GetRand=0 do
на использование локальной переменной.
while GetRand=0 do
на использование локальной переменной.
Спасибо, все работает 

А как использовать функцию RandomRange?
Пишу буквально следующее:

Пишу буквально следующее:
procedure TForm1.Button2Click(Sender: TObject);Delphi ругается на RandomRange, пишет:
begin
a:=RandomRange(1,5);
label67.Caption:=inttostr(a);
end;
[Error] Unit1.pas(174): Missing operator or semicolonЧто с синтаксисом не так?

Ошибка в 174 строчке, логично?
Это хотя бы что за строка в твоём приведённом коде?
Правильное использование рандомов - это в главной программе (Project.dpr)
написать один раз Randomize, а потом обращатся к Random, RandomRange и т.п.
Это хотя бы что за строка в твоём приведённом коде?
Правильное использование рандомов - это в главной программе (Project.dpr)
написать один раз Randomize, а потом обращатся к Random, RandomRange и т.п.
Нужно чтобы выдавала случайные числа integer из отрезка [A; B]?
А так разве нельзя:
A + Round(Random(B-A
А так разве нельзя:
A + Round(Random(B-A
Вот в этой строчке:
a:=RandomRange(1,5);
a:=RandomRange(1,5);
Хотелось бы все-таки RandomRange использовать раз она есть
Ну не знаю только что посмотрел RandomRange нормально пашет...
Аналогично - нормально всё работает.
вот код:
кто такая "a" ?
вот код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(IntToStr(RandomRange(1,5;
end;
end.
кто такая "a" ?
Такой как у меня синтаксис?
Вижу, как у меня... Буду дальше смотреть что за фигня
Все заработало! Спасибо всем!
Я не знал что надо Uses Math написать
Я не знал что надо Uses Math написать
Оставить комментарий
ms_nadin
Нужен рандомизатор, который выдает случайное значение из какого либо интервала или отрезка. Можно чтобы выдавал случайные числа типа Integer, но из большого отрезка.Функцию random не предлагать, она при каждом запуске программы выдает ОДНИ И ТЕ ЖЕ значения
Подскажите плиз как нормальный рандомизатор написать