|
#1
|
||||
|
||||
Случайное...
Привет всем!
В общем проблема такая не могу разобратся Как можно сделать случайным образом вытаскивать данные и выводить их. Данные можно вытащить при помощи номера индекса(от 0 до сколько угодно) Допустим к примеру Listbox в нем 100 строк каждая строка имеет свой текст как мне вытащить рандомно строки да бы они не посторялись и засуноть их номера в масив Вот код того что я начал но он не верно работает Код:
type recc = record Q_num: integer; // номер строки A_num: integer; var Test[0..29] of recc; qCount:= List1.Items.Count; for q:=0 to 29 do begin repeat Randomize; ok:=0; qa:=Random(qCount); for q1:=0 to 29 do if Test[q1].Q_num<>qa then ok:=1; if q1=29 then ok:=1; //<- Вот это строчка как бы лишняя но без нее циклит приложение если совпадает случайное значение с массивом until ok=1; Test[q].Q_num:=qa; end; Плиз очень надо помогите... [ iNewStar.Ru ] - Продам! Вопросы в ПМ |
#2
|
||||
|
||||
Код:
function Unique(var flag: array of boolean; range: integer): integer; begin result := random(range); while flag[result] do result := random(range); flag[result] := true; end; procedure Mass_of_Random(range: integer; var RND_Mass: array of integer); var i: integer; bm: array of boolean; begin SetLength(bm, length(RND_Mass)); for i := 0 to length(RND_Mass) - 1 do begin RND_Mass[i] := Unique(bm, range); end; Так можно сгенерить массив из уникальных рандомных чисел, ну а дальше понятно. |
#3
|
||||
|
||||
Как то так...Все в одной процедуре...
Код:
procedure TForm1.Button1Click(Sender: TObject); type recc = record Q_num: integer; // номер строки A_num: integer; end; var Test : array [0..9] of recc; qCount, q, ok, qa, q1 : word; begin Randomize;//Достаточно запустить один раз qCount:= ListBox1.Items.Count; for q:=0 to qCount-1 do begin repeat ok:=0; qa:=Random(qCount); for q1:=0 to qCount-1 do if Test[q1].Q_num<>qa then ok := 1 else begin ok := 0; break; end; until ok=1; Test[q].Q_num:=qa; ListBox2.Items.Add(IntToStr(Test[q].Q_num)); end; end; В начале был Бит, потом Байт и только потом появилось Слово... |
#4
|
||||
|
||||
NIch & TOJluK большое спс!
[ iNewStar.Ru ] - Продам! Вопросы в ПМ |