Показать сообщение отдельно
  #9  
Старый 30.11.2011, 02:24
Kaktuz Kaktuz вне форума
Начинающий
 
Регистрация: 30.10.2011
Сообщения: 149
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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 но оно как-то неполучается
Ответить с цитированием