elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problema ordenando array al azar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema ordenando array al azar  (Leído 3,878 veces)
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Problema ordenando array al azar
« en: 27 Septiembre 2011, 17:55 pm »

Es una boludez lo que no puedo hacer, el problema estara en como creo el random, ya que no se si sale el 0 y tambien me confundo con .net lo que pasa porque hacia mucho que no tocaba vb6 y digo esto porque talvez tengo problemas con los bucles con los valores posibles de i

Esto que dejo crea un bucle infinito dentro del do-loop while y la idea es que tome los items del listbox y los meta al azar en el array nombre()

Código
  1. Private Sub Form_Load()
  2. Dim i As Integer
  3. Dim j As Integer
  4. Dim sigue As Boolean
  5. Dim ran As Integer
  6.  
  7. ReDim Equipo(frmChampion.ListNombre.ListCount)
  8. ReDim Nombre(frmChampion.ListNombre.ListCount)
  9.  
  10. Cant = frmChampion.ListNombre.ListCount
  11.  
  12. For i = 0 To UBound(Nombre)
  13.  
  14.    Do
  15.         Randomize
  16.         ran = Int(Rnd() * Cant + 1)
  17.  
  18.    Loop While Nombre(ran) <> vbNullString
  19.  
  20.    Nombre(ran) = frmChampion.ListNombre.List(i)
  21.  
  22.    For j = 0 To Cant
  23.         If Nombre(j) = vbNullString Then
  24.             sigue = True
  25.         End If
  26.  
  27.    Next
  28.  
  29.    If sigue = False Then
  30.        Exit For
  31.    End If
  32.  
  33. Next
  34.  
  35. For j = 0 To UBound(Nombre)
  36.    Debug.Print Nombre(j)
  37. Next
  38.  
  39. End Sub
  40.  


En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Problema ordenando array al azar
« Respuesta #1 en: 27 Septiembre 2011, 18:27 pm »

HOLA!!!

Usa esta funcion:
Código
  1. Private Function RandomizeArray7913(arr() As Long) As Long()
  2. 'cambiar      ACA-v    abajo*        ACA-^    ACA-^ para cambiar el tipo
  3. Dim auxArr() As Long
  4. Dim pos As Long
  5. Dim lb As Long
  6. Dim ub As Long
  7. Dim ct As Long
  8.    Randomize Timer
  9.    ct = lb
  10.    lb = LBound(arr)
  11.    ub = UBound(arr)
  12.    ReDim auxArr(lb To ub)
  13.    pos = Int(Rnd() * (ub - lb + 1 )) + lb
  14.    auxArr(pos) = arr(ct)
  15.    ct = ct + 1
  16.    While ct <= ub
  17.        pos = Int(Rnd() * (ub - lb + 1 )) + lb
  18.        While auxArr(pos) <> 0 'PARA VARIANT NOT ISEMPTY(AUXARR(POS)) PARA STRING AUXARR (POS) <> ""
  19.            pos = Int(Rnd() * (ub - lb + 1 )) + lb
  20.        Wend
  21.        auxArr(pos) = arr(ct)
  22.        ct = ct + 1
  23.    Wend
  24.    RandomizeArray7913 = auxArr
  25. End Function
  26.  

Asi se usa:
Código
  1. Private Sub Form_Load()
  2. Dim a(9) As Long
  3. Dim b() As Long
  4.  
  5. For x = 0 To 9
  6. a(x) = x
  7. Next
  8. b = RandomizeArray7913(a)
  9. For x = LBound(b) To UBound(b)
  10.    Debug.Print b(x)
  11. Next
  12. End Sub

GRACIAS POR LEER!!!


« Última modificación: 28 Septiembre 2011, 14:55 pm por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Problema ordenando array al azar
« Respuesta #2 en: 27 Septiembre 2011, 19:54 pm »

http://foro.elhacker.net/programacion_visual_basic/source_cpushsort-t340133.0.html

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Problema ordenando array al azar
« Respuesta #3 en: 28 Septiembre 2011, 01:26 am »

Gracias por las molestia pero me sigue creando un bucle infinito y tengo que terminar la aplicacion.
Si pueden mirar mi codigo que esta bien entendible pienso y me dicen que hice mal, les agradezco
En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Problema ordenando array al azar
« Respuesta #4 en: 28 Septiembre 2011, 04:05 am »

Código
  1.  
  2. Cant = frmChampion.ListNombre.ListCount //Supongamos que es 8 (0 a 7)
  3.  
  4. For i = 0 To UBound(Nombre)
  5.  
  6.    Do
  7.         Randomize
  8.         ran = Int(Rnd() * Cant + 1)
  9. 'Tienes una lista con 8 campos (0 a 7), al hacer Rnd*8 el numero maximo será 7
  10. 'Pero como le sumas 1, RAN podría valer 8, que sería un valor fuera de rango.
  11.  
  12.    Loop While Nombre(ran) <> vbNullString
  13. 'El ciclo se romperá "por suerte" :D, podrían salir solo 4's, 6's o 2's en cuyos
  14. 'campos siempre habría una cadena valida, lo que permitiría la inmortalidad del ciclo.
  15.  

Saludos!
En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Problema ordenando array al azar
« Respuesta #5 en: 28 Septiembre 2011, 04:40 am »

Como? mi idea con ese bucle es que genere numeros hasta que nombre(esenumero) no contenga nada, asi le pone el valor del item i
O lo estoy haciendo mal? no te entendi bien, dime q puedo cambiar ahi.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Problema ordenando array al azar
« Respuesta #6 en: 28 Septiembre 2011, 04:54 am »

numeros aleatorios sin repeticion?...

http://foro.elhacker.net/programacion_visual_basic/src_crndnumbersnr_generar_numeros_aleatorios_sin_repetir_veryfast-t328967.0.html

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Problema ordenando array al azar
« Respuesta #7 en: 28 Septiembre 2011, 19:48 pm »

Alguien que me diga la parte del codigo mio que esta mal?
En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Problema ordenando array al azar
« Respuesta #8 en: 28 Septiembre 2011, 20:07 pm »

Ya pude, le cambie lo que dijo Ignorante, de quitarle el + 1 que yo habia puesto que ya ni me acuerdo porque.
Y le puse que los bucles sean hace ubound(nombre) -1

Pero ahora.. la gran pregunta.. porque? Si yo creo un array(6) , el ubound(array) sera igual a 6? no tendria que ser igual a 5? Cometi ese error que tendria que saberlo no se porque me confundo cuando programo en C# y luego paso a vb6, si todos los arrays se inician en 0 y es lo mismo, o no se , si alguien me explica esto re basico, le agradezco.


Ya me explicaron y mi confuncion fue porque en C# al hacer:

Código
  1. string[] hola = new string[6]
  2.  

El array hola ira desde 0 to 5

Sin embargo en vb6

Código
  1. dim hola(6) as string
  2.  

El array hola ira desde 0 to 6 no?
« Última modificación: 28 Septiembre 2011, 20:15 pm por $Edu$ » En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Problema ordenando array al azar
« Respuesta #9 en: 28 Septiembre 2011, 20:34 pm »

Código
  1. dim hola(6) as string
No, estás reservando 6 campos, 0 al 5.
Creo que en C# es lo mismo quen en VB. Casi todos los arrays inician en 0, a menos que especifiques lo contrario:

Citar
miarray(1 to 6)

Saludos!

En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con array
Programación Visual Basic
Free-Knowledgend 4 1,955 Último mensaje 3 Julio 2006, 23:33 pm
por <--v1c1ous-->
Copiar parte de una array a otra array
Programación Visual Basic
sircid 3 5,024 Último mensaje 19 Diciembre 2007, 11:27 am
por LeandroA
Azar -Nombres batch al azar -please ayuda
Scripting
usuario oculto 4 4,123 Último mensaje 16 Diciembre 2008, 19:44 pm
por SmartGenius
problemilla ordenando registros
PHP
viher 6 2,944 Último mensaje 2 Septiembre 2010, 21:57 pm
por Franki
Problema ordenando Jtable
Java
fernan2001 1 1,972 Último mensaje 18 Febrero 2014, 16:33 pm
por 1mpuls0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines