Sorteio sem repetição

08/11/2005

0

Preciso de uma ajuda urgente.

Faz uma semana que estou tentando e nada...

Como faço para não repetir um número num sorteio de números aleatórios?

O usuário informa quantos números quer que sejam sorteados através de um spinedit e o sorteio é feito entre os registros de uma tabela.

if qrSorteio.RecordCount > 0 then
begin
i:=qrSorteio.RecordCount;

Randomize;
for j := 1 to spcount.Value do
begin
numsorteado:=Random(i)+1;
ShowMessage(´Numero sorteado: ´ + IntToStr(numsorteado));
qrSorteio.First;
qrSorteio.MoveBy(numsorteado-2);
dm.tbSorteio.Append;

Está repetindo números já sorteados.

[]S

[quote:4d9e31d6ed=´Moderação´][color=red:4d9e31d6ed]Título editado por Massuda

[b:4d9e31d6ed]Removido: ´Urgentíssimo!!! Help por favor!´[/b:4d9e31d6ed]
Por favor, evite esse tipo de título[/color:4d9e31d6ed][/quote:4d9e31d6ed]


Sarnhold

Sarnhold

Responder

Posts

08/11/2005

Emerson Nascimento

crie um vetor onde vc guardará os números já sorteados.
tome esse código como exemplo e faça as devidas alterações/adaptações:

procedure TForm1.Button1Click(Sender: TObject);
var
  numsorteado, i, j: integer;
  Sorteado: array of integer;

  function JaSorteado(numero: integer): Boolean;
  var
    i: Integer;
  begin
    Result := False;
    for i := 0 to High(Sorteado) do
      if Sorteado[i] = numero then
      begin
        Result := True;
        Break;
      end;
  end;
begin
  i := 200;
  for j := 1 to spcount.Value do
  begin
    repeat
      numsorteado := Random(i)+1;
    until not JaSorteado(numsorteado);
    ShowMessage(IntToStr(numsorteado));
    SetLength(Sorteado,Length(Sorteado)+1);
    Sorteado[High(Sorteado)] := numsorteado;

    {ponha seu código aqui}
  end;
end;



Responder

08/11/2005

Gandalf.nho

[b:3b499d20bf][color=red:3b499d20bf]Bloqueado por Infração às Regras de Conduta :[/color:3b499d20bf][/b:3b499d20bf]

Continue a discussão no seu tópico original
[url]http://forum.clubedelphi.net/viewtopic.php?t=70259[/url]

Para maiores esclarecimentos pode mandar-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=8378]Mensagem Particular[/url].


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar