Fórum Sorteio sem repetição #302239
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
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
[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]
Sarnhold
Curtir tópico
+ 0
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:
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
Gostei + 0
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].
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)