NAO REPETIR NUMEROS

REIDARK 25/02/2012 21:50:29
#395653
Galera, eu to criando um programa que é um [Ô]sorteio[Ô].
E eu queria saber como o gerador não repetir os numeros?
OBS: Eu uso essa formula para sortear: text1.Text = (Int(25 * Rnd() + 1))
E vai até o text5.

Valeu.
ALTAIR148 25/02/2012 22:50:56
#395654
Resposta escolhida
Boa noite,

Em anexo tem um exemplo que sorteia em 5 texbox e os valores não se repetem.
REIDARK 26/02/2012 02:01:43
#395660
Opa, eae Altair.
Eu testei seu projeto, e ele repete sim :(
Bem, ele [Ô]demora[Ô] pra repetir, mas repete, pelo menos no meu computador.
Não sei se é so aqui.
Você sabe a solução?
ALTAIR148 26/02/2012 09:16:39
#395667
Ah cara entendi... Olha pelo que entendi aqui vc quer uma forma que nunca se repete. Tipo dessa forma ai cada vez que você clica no botão ele gera novamente, os números, você quer algo que por exemplo vc clique no botão 10 vezes e nunca se repete?
PEGUDO 26/02/2012 09:18:30
#395668
Cara
Se vc quiser que nunca se repita um nº vc vai ter que criar uma tabela no BD ou um Listbox para armazenar estes nº sorteados
e, a cada nº sorteado, o programa vai consultar no BD (ou ListBox) se este nº já existe ou não.

Aguma coisa como, no botão para sortear os números:
[txt-color=#0000f0]Dim[/txt-color] JaTem [txt-color=#0000f0]As Boolean[/txt-color] = [txt-color=#0000f0]False[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] Con [txt-color=#0000f0]As[/txt-color] ADODB.Connection, RecSet [txt-color=#0000f0]As[/txt-color] ADODB.RecordSet

[txt-color=#007100][ô]Vamos supor que nesta linha eu fiz conexão com o BD e que minha tabela chama-se tblDados, então:[/txt-color]

Retorno:
[txt-color=#007100][ô]Código para sortear os nºs
[ô]etc...etc...
[ô]Fim código para sortear os nºs[/txt-color]

RecSet = Con.Execute([txt-color=#e80000][Ô]Select NumSorteado From tblDados[Ô][/txt-color])

[txt-color=#0000f0]If[/txt-color] RecSet.EOF [txt-color=#0000f0]Then[/txt-color] JaTem = [txt-color=#0000f0]True Else[/txt-color] Jatem = [txt-color=#0000f0]False

If[/txt-color] JaTem = [txt-color=#0000f0]False Then[/txt-color]
[txt-color=#007100][ô]Código para inserir os nºs na TextBox[/txt-color]
[txt-color=#0000f0]Else
GoTo[/txt-color] Retorno
[txt-color=#0000f0]End If[/txt-color]

Só que, neste código, o programa vai ficar em loop até que seja sorteado um nº diferente do que já tem no BD
Cabe a você agora decidir como seu programa vai tratar isto ou se, realmente, não pode ter nºs repetidos
visto que até na MegaSena os nºs se repetem a cada novo sorteio.
PROGRAMADORVB6 26/02/2012 13:30:02
#395690
Olá colega.
Veja este exemplo e analize : http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8907
Até+
Programadorvb6
REIDARK 26/02/2012 14:01:04
#395691
Mas pra usar esse código eu precisaria ter uma tabela ou uma ListBox?
RACEMAN 26/02/2012 14:33:16
#395695
Não precisa de Tabela ou ListBox!
Guarde os números em um array local(variável local) e, faça um for dentro do outro.
Exemplo:

Dim i As Integer
Dim j As Integer
Dim sort As Integer
Dim sorteados(5) As Integer

For i = 0 To 4
sort = Int(Rnd * 25) + 1
For j = 0 To 4
If (sort = sorteados(j)) Then
sort = Int(Rnd * 25) + 1
j = -1
End If
Next j
sorteados(i) = sort
Next i

MsgBox sorteados(0) & [Ô] - [Ô] & sorteados(1) & [Ô] - [Ô] & sorteados(2) & [Ô] - [Ô] & sorteados(3) & [Ô] - [Ô] & sorteados(4)
Tópico encerrado , respostas não são mais permitidas