Fórum Números aleatórios e diferentes #243957

21/07/2004

0

:? Gostaria que o programa me retornasse 24 números aleatórios, só que sem repetir, de 1 até 24. Tentei o seguinte:

procedure TForm1.Button1Click(Sender: TObject);
var
Numero : array[1..24] of Integer;
Igual : array[1..24] of boolean;
Texto : array[0..24] of String;
i, j : Integer;
Begin
  for i:=1 to 24 do
    Igual[i]:=False;
  for i:=1 to 24 do
  begin
    Repeat
      j:=(Random(24));
      Randomize;
      Until (Igual[j]=False);
    Igual[j]:=True;
    Numero[i]:=j;
  end;
  Texto[0]:=´Os valores são: ´;
  for i:=1 to 24 do
  Begin
    Texto[i]:=Texto[i-1]+IntToStr(Numero[i])+´    ´;
  end;
  Label1.Caption:=Texto[24];
end;

Alguem me ajuda?


sonec2004@itelefonica.com.br
[/code]


Sonec2004

Sonec2004

Responder

Posts

21/07/2004

Beppe

Random(24) retornaum número de 0 a 23. Some 1. Chame Randomize apenas uma vez.

PS: Relate o problema!!


Responder

Gostei + 0

23/07/2004

Sonec2004

:D Beppe, Obrigado pelas dicas.
Mudei o código:

procedure AleatorioDifente;
var
Lista1 : Array[0..23] of Integer;
Lista2 : Array[0..23] of Integer;
n, i, j, A: Integer;
begin
  n:=23;
  for i:=0 to n do
    Lista1[i]:=i;
  for i:=0 to n do
  Begin
    Randomize;
    A:=(Random(n+1));
    Lista2[i]:=Lista1[A];
    For j:=A to (n-1) do
      Lista1[j]:=Lista1[j+1];
    n:=n-1;
  end;
  for i:=0 to 23 do
end;


Os números ficam na lista2

Está rodando blz...


Responder

Gostei + 0

23/07/2004

Beppe

De nada...naum parece muito ok pra mim, mas se vc gostou do resultado, blz... :wink:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar