Цитата:
Сообщение от m1sclick
Уже наверно не актуально но,вот так наверно будет красивее:
Код:
procedure RList;
begin
Randomize;
repeat
r := Random(15)+1;
if Form1.ListBox1.Items.Count = 15 then exit;
until New[r] <> 0 ;
Form1.ListBox1.Items.Add(IntToStr(r));
New[r] := 0;
end;
|
Почему-то у меня программа зависла с 100% загрузкой процессора.
Вот еще так подкорректировал.
Код:
procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
begin
ListBox1.Clear;
for i:=1 to 15 do
New[i]:=0;
for i:=1 to 15 do
ABC;
end;
procedure TForm1.ABC;
var r: integer;
begin
Randomize;
r := random(15)+1;
If New[r] = 0 then
begin
New[r] := r;
ListBox1.Items.Add(IntToStr(r));
end
else
ABC;
end;
Что конечно ни как не могу понять суть строки
r := random(15)+1; если же нам генерируют число 0 мы добавляем 1 и получаем 1. Это ясно. Ну, а вот если генерируем число 15 и добавляется 1 должно получится 16 но оно как-то неполучается
