lammu Posted November 22, 2006 at 02:46 PM Report #65966 Posted November 22, 2006 at 02:46 PM Bem o programa ja esta feito so nao sei como vou ordenar os numeros... queria que me desse uma dica obrigado http://img469.imageshack.us/my.php?image=bpye2.jpg
killercode Posted November 22, 2006 at 03:09 PM Report #65974 Posted November 22, 2006 at 03:09 PM 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 😞 Geek PressWeboeste.Com
Asgorath Posted November 22, 2006 at 06:06 PM Report #66016 Posted November 22, 2006 at 06:06 PM 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
vbtipo Posted November 22, 2006 at 09:34 PM Report #66072 Posted November 22, 2006 at 09:34 PM 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.
TheDark Posted November 23, 2006 at 01:39 AM Report #66132 Posted November 23, 2006 at 01:39 AM 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.
Tiago Salgado Posted November 23, 2006 at 07:48 PM Report #66238 Posted November 23, 2006 at 07:48 PM Da uma olhadela aqui http://www.portugal-a-programar.pt/index.php?showtopic=2041
Tiago_22 Posted November 23, 2006 at 07:59 PM Report #66242 Posted November 23, 2006 at 07:59 PM 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
pcaldeira Posted November 23, 2006 at 09:21 PM Report #66249 Posted November 23, 2006 at 09:21 PM 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.
TheDark Posted November 23, 2006 at 11:54 PM Report #66296 Posted November 23, 2006 at 11:54 PM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now