|
Postada em 02/07/2004 11:10 hs
Olá, galera Sei que é simples, mas como nunca fiz, prefiro perguntar... Como faço pra gerar um número aleatório pertencente ao intervalo -2147483648 até 2147483647 (isso é, no intervalo de valores do tipo Long)??? Se não for pedir muito, deixem a rotina pronta pra mim... sei que nao deve dar mais de duas linhas, mas é que não sei mesmo como fazer. Se fossem somente valores positivos, eu sabia... mas tem os negativos ai tambem, e ai complicou tudo... fiz alguns testes, mas não deu muito certo... Agradeço qualquer ajuda. Elieser Carlos Topassi São José do Rio Preto, SP
|
|
|
|
|
Postada em 02/07/2004 14:28 hs
este código eu peguei num programinha que eu fiz de caça niqueis o Rnd é que faz ser aleatorio porém é um aleatorio ordenado, por isto * 10o resto vc desifra ai que eu to com pouco tempo valeu!!! pic_premio.Visible = False ' Gera os numeros aleatorios lbl_1.Caption = Int(Rnd * 10) lbl_2.Caption = Int(Rnd * 10) lbl_3.Caption = Int(Rnd * 10) ' testa os visores If ((lbl_1 = 7) And (lbl_2 = 7)) Or _ ((lbl_1 = 7) And (lbl_3 = 7)) Or _ ((lbl_2 = 7) And (lbl_3 = 7)) Then pic_premio.Visible = True ' exibe a figura Beep End If If (lbl_1 = 7) And (lbl_2 = 7) And (lbl_3 = 7) Then pic_maximo.Visible = True lbl_premio.Visible = True pic_premio.Visible = False
|
|
|
|
Postada em 02/07/2004 14:53 hs
Leonardo, Para que o Rnd() deixe de gerar numeros Ordenados, coloque na sub que vc chama o Rnd() o evento Randomize.
Elieser, Se vc tentar trabalhar direto com números ou com a variavel Long vai dar Overflow, então Faça assim:
Dim lngValor As Long Dim dblSorteio As Double Randomize lngValor = 2147483647 dblSorteio = lngValor * 2 dblSorteio = Int(Rnd() * dblSorteio) lngValor = dblSorteio - lngValor
________________________ Té + Que NIMB role bons Dados! 
|
|
|
|
Postada em 02/07/2004 16:55 hs
Galera, Valeu pelo codigo e tudo mais, mas o que eu quero é gerar numeros negativos ou positivos. Veja: se eu fizer rnd*10, vai gerar um numero entre 1 e 10, mas eu quero por exemplo entre -10 e 10. Como faço isso???
|
|
|
|
Postada em 02/07/2004 17:03 hs
Então, é como eu falei Int((Rnd() * (10 * 2) - 10) com isso, na multiplicação ele gera um numero entre 20, depois ele ajusta para a sua escala (10, -10)
________________________ Té + Que NIMB role bons Dados! 
|
|
|
|
Postada em 03/07/2004 10:27 hs
WaldirJr, acho que eu to ficando velho... juro que nao tinha pensado em fazer isso!!! Valeu galera... Abraços a todos...
|
|
|