Jump to content

Gerar Numeros Aleatórios


NameException
 Share

Recommended Posts

NameException

Boas, ppl....

Tou a desenvolver uma aplicação em VB, para simular o sorteio do euromilhões, mas não estou a conseguir gerar numeros aleatórios..... Alguem me pode dar uma dica?

Link to comment
Share on other sites

Aqui vai:

Pega nos segundos do "time system" e multiplica por um número aleatóreo, criando assim um verdadeiro número aleatóreo

Private Sub Command1_Click()

    seconds = Right(Time$, 2)

    'Podes tirar o Int() e ficas com

    'um número com casas decimais

    Random_Number = Int(Rnd * seconds)

End Sub

Link to comment
Share on other sites

seesharptec

Private Sub Command1_Click()

    Randomize Timer

    Random_Number = Int(Rnd * seconds)

End Sub

Penso que isto faz o mesmo

SeeSharpTec

Link to comment
Share on other sites

Aqui fica a minha sugestão (dps posto o meu code do euromilhoes)

Dim a As Double
a = Int(Rnd * 3) + 1
Text1.Text = a

A Função Int() faz com que o nº se transforme em inteiro sem regras de arredondamento, isto é, 9,6 não ficará 10, mas sim 9 para ficar inteiro segundo as regras de arredondamento terias de usar a função Round()

O (Rnd * 3) + 1 que dizer que vai ser gerado um nº aleatório entre 0 e 2 penso eu, como 0 nao pode ser solução e é até 3 entao 0+1= 1, 1+1=2, 2+1 = 3, ou seja, o +1 é para que os valores fiquem entre 1 e 3 ;)

Rnd é uma "sigla" usada para gerar nºs aleatórios 😁

Hope i've helped u

Link to comment
Share on other sites

NameException

  Assim  gera um numero aleatório, mas eu kero gerar entre 5 e 12 numeros, mas não tenho forma de guardar esses numeros temporariamente e depois listá-los... Haverá algo parecido com Array's ou Vectores em VB 6, como em Java? Ou como é que posso guardar os valores?

Link to comment
Share on other sites

Para gerares nºs aleatorios podes usar apenas estas duas instruções

randomize timer

x=int(rnd*49)+1 para sortear de 1 a 49

depois podes criar um array do tipo boolean em que basicamente verificas se o nº que ele deu já saiu ou não para isso basta fazeres isso

a(x).value=true

if a(x).value=true then

sorteia outro nº

else

a(x)=true

msgbox x ou outro output qq

endif

Link to comment
Share on other sites

Scorpion_Blood

Aqui fica a minha sugestão (dps posto o meu code do euromilhoes)

Dim a As Double
a = Int(Rnd * 3) + 1
Text1.Text = a

A Função Int() faz com que o nº se transforme em inteiro sem regras de arredondamento, isto é, 9,6 não ficará 10, mas sim 9 para ficar inteiro segundo as regras de arredondamento terias de usar a função Round()

O (Rnd * 3) + 1 que dizer que vai ser gerado um nº aleatório entre 0 e 2 penso eu, como 0 nao pode ser solução e é até 3 entao 0+1= 1, 1+1=2, 2+1 = 3, ou seja, o +1 é para que os valores fiquem entre 1 e 3 :)

Rnd é uma "sigla" usada para gerar nºs aleatórios 😁

Hope i've helped u

a função round n funciona correctamente pk penso ser arredondamentos para outros países... o que quero dizer é, quando o falor é 9,3, o valor arredonda para 9... se o valor for 9,7, arredonda para 10... MAS se o valor for 9,5 o valor arredonda para 9, o que para nós está incorrecto, o que costumo fazer é adicionar 0,1 ao valor inicial para corrigir este erro e funciona correctamente :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.