Jump to content

[VB6] Ordenar Numeros Totoloto


Recommended Posts

Posted

hummmm.... não sabes como ordenar os numeros... dou-te um conselho, usa 3 vectores... e umas estructuras for... um dos vectores tem os numeros tal como foram introduzidos, outro é o final ja ordenado e o terceiro é um vector auxiliar...

Agora o resto tenta descubrir tu 😞

Posted

A classe Array tem um metodo Sort. Da uma vista de olho no help.

"The Dark Side Clouds Everthing. Impossible To See The Future Is."My rig: Intel Core 2 Quad Q9450 | abit IP35P | 4G Kingston 800 Mhz | XFX GeForce 9800 GX2 1G ddr3 | 2X WD5000AAJS 500Gb Sata 2 | PSU 600W || Caixa El-Diablo | Creative XMod

Posted

Como é somente 7 números, podes pegar um a um e distribui-los para cada variável, ou seja, atribuis a cada variável um número que sair. De seguida utilizas as instruções if's para veres a ordenação correcta dos números.

Ps: Reparei na imagem que pusseste aí, nos números que foram gerados estão pelo menos dois que se repetem e isso não pode acontecer de maneira alguma.

Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões.

Posted

Podes fazer o seguinte, supondo que tens os números num array/vector:

- percorres o vector a partir do 1º elemento para ver qual é o número mais pequeno;

- trocas o número mais pequeno com o 1º elemento do vector;

- percorres o vector a partir do 2º elemento para ver qual é o número mais pequeno excepto o 1º;

- trocas o número mais pequeno com o 2º elemento  do vector;

- percorres o vector a partir do 3º elemento para ver qual é o número mais pequeno excepto o 1º e o 2º;

- trocas o número mais pequeno com o 3º elemento do vector;

- etc.

Existe uma maneira mais eficiente utilizando listas, mas uma vez que não sei se é possível em VB, não a vou explicar aqui...

hummmm.... não sabes como ordenar os numeros... dou-te um conselho, usa 3 vectores... e umas estructuras for... um dos vectores tem os numeros tal como foram introduzidos, outro é o final ja ordenado e o terceiro é um vector auxiliar...

Wow, isso é um desperdício de recursos e tanto...

[offtopic]

Ps: Reparei na imagem que pusseste aí, nos números que foram gerados estão pelo menos dois que se repetem e isso não pode acontecer de maneira alguma.

Ora essa... se até saem zeros! 😄

[/offtopic]

Desaparecido.

Posted

Deixo aqui um código que ordena a chave... no caso uma chave para euromilhoes

cumps  😄

Option Explicit
Option Base 1
Dim estrelas(2) As Integer
Dim numeros(5) As Integer

Function estrela() As Integer
    Randomize
    estrela = Int((9 - 1 + 1) * Rnd + 1)
End Function

Function numero() As Integer
    Randomize
    numero = Int((50 - 1 + 1) * Rnd + 1)
End Function


Private Sub Command1_Click()
   Dim I As Integer, troca, x, y
        
    estrelas(1) = estrela
    estrelas(2) = estrela
    While estrelas(2) = estrelas(1)
       estrelas(2) = estrela
    Wend
    For I = 1 To 5
        numeros(I) = 0
    Next
    '
    numeros(1) = numero
    numeros(2) = numero
    While numerorepetido(numeros(2), 2)
        numeros(2) = numero
    Wend
    numeros(3) = numero
    While numerorepetido(numeros(3), 3)
        numeros(3) = numero
    Wend
    numeros(4) = numero
    While numerorepetido(numeros(4), 4)
        numeros(4) = numero
    Wend
    numeros(5) = numero
    While numerorepetido(numeros(5), 5)
        numeros(5) = numero
    Wend
    
    'ordenar números
    For x = 1 To 4
        For y = x To 5
            If numeros(x) > numeros(y) Then
            troca = numeros(y)
            numeros(y) = numeros(x)
            numeros(x) = troca
            End If
        Next y
    Next x
    
    'ordenar estrelas
    troca = 0
    If estrelas(1) > estrelas(2) Then
    troca = estrelas(1)
    estrelas(1) = estrelas(2)
    estrelas(2) = troca
    End If
    
    'imprimir
    Me.num(0) = numeros(1)
    Me.num(1) = numeros(2)
    Me.num(2) = numeros(3)
    Me.num(3) = numeros(4)
    Me.num(4) = numeros(5)
    
    Me.estrela1 = estrelas(1)
    Me.estrela2 = estrelas(2)
End Sub


Function numerorepetido(n As Integer, inx As Integer) As Boolean
    Dim rep As Boolean
    Dim I As Integer
    rep = False
    
    For I = 1 To inx - 1
        If n = numeros(I) Then
           rep = True
           Exit For
        End If
    Next
    numerorepetido = rep
End Function
Posted

Antes de tentares ordenar tens de evitar repetições. Quanto a colocar os números por ordem, põe-nos numa array e depois usa o método Sort da class Array, que ordena automaticamente, como já sugeriu o Asgorath.

Posted

As repetições não fazem parte do algoritmo de ordenação, têm que ser eliminadas aquando da geração dos números.

(...) numa array (...)

Array é masculino.

Desaparecido.

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
×
×
  • 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.