NAO REPETIR NUMEROS
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.
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.
Boa noite,
Em anexo tem um exemplo que sorteia em 5 texbox e os valores não se repetem.
Em anexo tem um exemplo que sorteia em 5 texbox e os valores não se repetem.
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?
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?
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?
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:
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.
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.
Olá colega.
Veja este exemplo e analize : http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8907
Até+
Programadorvb6
Veja este exemplo e analize : http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8907
Até+
Programadorvb6
Mas pra usar esse código eu precisaria ter uma tabela ou uma ListBox?
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)
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