|
331
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 27 Agosto 2014, 05:31 am
|
Hola
Lo que me refiero es que cada combinación este ordenada de menor a mayor
Tomo una combinación que me da el programa y veras que esta desordenada
01 15 30 45 49 10 39 28 04 03 <-- asi me los pone el código ahora
01 03 04 10 15 28 30 39 45 49 <---asi es que quiero ordenarlos
Luis
|
|
|
332
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 26 Agosto 2014, 22:05 pm
|
No me sale y nada significa que no me ordena las combinaciones Public Class LuisClass_v2 ReadOnly Randomizer As New Random ' Num ReadOnly FixedValues As Integer() = ' Num Enumerable.Range(1I, 49I).ToArray ' 1 to 30 ReadOnly FixedValues As Integer() = {1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50} ReadOnly RandomValues As Integer() = Enumerable.Range(FixedValues.First, FixedValues.Last).ToArray ' 1 to 30 Dim Combo As List(Of Integer) = Nothing Dim Combos As New List(Of List(Of Integer)) Private Sub Test() Handles MyBase.Shown Dim IndexCounter As Integer = FixedValues.First ' 1 Dim LenCounter As Integer = 0I Const NumStep As Integer = 3I Const NumLen As Integer = 10I Do Until IndexCounter > FixedValues.Last ' IndexCounter > 30 Combo = New List(Of Integer) For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep LenCounter += 1I Combo.Add(FixedValues(Num - 1I)) If LenCounter >= NumLen Then Exit For End If Next Num If LenCounter < NumLen Then ' If LenCounter < 10 For RandomNum As Integer = 1I To (NumLen - LenCounter) Dim n As Integer = Randomizer.Next(RandomValues.First, RandomValues.Last) Do Until Not Combo.Contains(n) n = Randomizer.Next(RandomValues.First, RandomValues.Last) Loop Combo.Add(n) Next ' RandomNum End If ' LenCounter < NumLen Debug. WriteLine(String. Join(", ", Combo )) ' Stop #End If Combos.Add(Combo) IndexCounter += 1I LenCounter = 0I Loop ' IndexCounter >= FixedValues.Last ' ******** ordenamiento------------- ' Dim values As Integer() = (From n As Integer In Combos Order By n Ascending).ToArray ' ******** ' Listbox: ' ******** Combos.ForEach(Sub(comb As List(Of Integer)) ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox. ListBox1.Items.Add(String.Join(", ", From value As String In comb Select If(value.Length = 1I, value.Insert(0I, "0"c), value))) ListBox1.Sorted = True End Sub) End Sub ' Test End Class
|
|
|
333
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 26 Agosto 2014, 20:57 pm
|
Hola Cuando me dices que pruebe con " ListBox1.Sorted = True " lo hice en diseño o propiedad del listbox y nada tambien lo puse en el codigo y nada Combos.ForEach(Sub(comb As List(Of Integer)) ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox. ListBox1.Items.Add(String.Join(", ", From value As String In comb Select If(value.Length = 1I, value.Insert(0I, "0"c), value))) ListBox1.Sorted = True End Sub)
|
|
|
334
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 26 Agosto 2014, 19:38 pm
|
Hola Bien sigo probando no he modificado nada del codigo solo añadi la rutina que me pusiste arriba y esta es la que me da " Error 1 Un valor de tipo 'System.Collections.Generic.List(Of Integer)' no se puede convertir en 'Integer'. " Dim values As Integer() = (From n As Integer In Combos Order By n Ascending).ToArray
lo que busco es ordenar las combinaciones que se muestran en el listbox ordenados de menor a mayor luis
|
|
|
335
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 26 Agosto 2014, 06:52 am
|
Ahora si ya me toma los numeros y los combina ya estoy con lo del ordenamiento de menor a mayor pero me da este error que un valor de sistems no se puede convertir a string ' ******** ordenamiento------------- Dim values As Integer() = (From n As Integer In Combos Order By n Ascending).ToArray ' ******** ' Listbox: ' ******** Combos.ForEach(Sub(comb As List(Of Integer)) ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox. ListBox1.Items.Add(String.Join(", ", From value As String In comb Select If(value.Length = 1I, value.Insert(0I, "0"c), value))) End Sub) End Sub ' Test
saludos Luis
|
|
|
336
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 25 Agosto 2014, 19:58 pm
|
Hola Bueno tengo algunos dias tratando de hacer lo que me pusiste elektro pero no me sale o me da combianciones raras o me da el error de variable fuera de rango te pongo el codigo a ver donde me estoy pelando Public Class LuisClass_v2 ReadOnly Randomizer As New Random ' Num ReadOnly FixedValues As Integer() = ' Num Enumerable.Range(1I, 49I).ToArray ' 1 to 30 ReadOnly FixedValues As Integer() = {1, 5, 19, 22, 34, 55, 66, 88, 9, 20, 25} ReadOnly RandomValues As Integer() = Enumerable.Range(FixedValues.First, FixedValues.Last).ToArray ' 1 to 30 Dim Combo As List(Of Integer) = Nothing Dim Combos As New List(Of List(Of Integer)) Private Sub Test() Handles MyBase.Shown Dim IndexCounter As Integer = FixedValues.First ' 1 Dim LenCounter As Integer = 0I Const NumStep As Integer = 3I Const NumLen As Integer = 6I Do Until IndexCounter > FixedValues.Last ' IndexCounter > 30 Combo = New List(Of Integer) For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep ' 1 to 30 Step 3 ' Combo.Add(Num) ' LenCounter += 1I Combo.Add(FixedValues(NumStep * LenCounter)) If LenCounter >= NumLen Then Exit For End If Next ' Num If LenCounter < NumLen Then ' If LenCounter < 10 For RandomNum As Integer = 1I To (NumLen - LenCounter) Dim n As Integer = Randomizer.Next(RandomValues.First, RandomValues.Last) Do Until Not Combo.Contains(n) n = Randomizer.Next(RandomValues.First, RandomValues.Last) Loop Combo.Add(n) Next ' RandomNum End If ' LenCounter < NumLen Debug. WriteLine(String. Join(", ", Combo )) ' Stop #End If Combos.Add(Combo) IndexCounter += 1I LenCounter = 0I Loop ' IndexCounter >= FixedValues.Last ' ******** ' Listbox: ' ******** Combos.ForEach(Sub(comb As List(Of Integer)) ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox. ListBox1.Items.Add(String.Join(", ", From value As String In comb Select If(value.Length = 1I, value.Insert(0I, "0"c), value))) End Sub) End Sub ' Test End Class
|
|
|
337
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 20 Agosto 2014, 13:56 pm
|
Hola porque no me salen los números que he puesto para combinar ? he echo algunos arreglos para combinar con cinco ya que según la cantidad de números en la variable si me paso se queda en un loop esto lo detecta,pero los números que pongo en ella no ? Public Class LuisClass_v2 ReadOnly Randomizer As New Random ReadOnly FixedValues As Integer() = {1, 5, 19, 22, 34, 55, 66, 88, 9, 20, 25} ReadOnly RandomValues As Integer() = Enumerable.Range(FixedValues.First, FixedValues.Last).ToArray ' 1 to 30 Dim Combo As List(Of Integer) = Nothing Dim Combos As New List(Of List(Of Integer)) Private Sub Test() Handles MyBase.Shown Dim IndexCounter As Integer = FixedValues.First ' 1 Dim LenCounter As Integer = 0I Const NumStep As Integer = 3I Const NumLen As Integer = 5I Do Until IndexCounter > FixedValues.Last ' IndexCounter > 30 Combo = New List(Of Integer) For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep ' 1 to 30 Step 3 Combo.Add(Num) LenCounter += 1I If LenCounter >= NumLen Then Exit For End If Next ' Num If LenCounter < NumLen Then ' If LenCounter < 10 For RandomNum As Integer = 1I To (NumLen - LenCounter) Dim n As Integer = Randomizer.Next(RandomValues.First, RandomValues.Last) Do Until Not Combo.Contains(n) n = Randomizer.Next(RandomValues.First, RandomValues.Last) Loop Combo.Add(n) Next ' RandomNum End If ' LenCounter < NumLen Debug. WriteLine(String. Join(", ", Combo )) ' Stop #End If Combos.Add(Combo) IndexCounter += 1I LenCounter = 0I Loop ' IndexCounter >= FixedValues.Last ' ******** ' Listbox: ' ******** Combos.ForEach(Sub(comb As List(Of Integer)) ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox. ListBox1.Items.Add(String.Join(", ", From value As String In comb Select If(value.Length = 1I, value.Insert(0I, "0"c), value))) End Sub) End Sub ' Test End Class
|
|
|
338
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 19 Agosto 2014, 13:31 pm
|
Mil gracias de nuevo ahora si pude hacerlo funcionar Bien aca donde me pones esto , es lo debería de cambiar por mi variable " result " que es la que tiene los números después de efectuada la operación que hago en mi programa ? ya que mi idea es implementarlo a mi programa ReadOnly FixedValues As Integer() = {1, 5, 19, 22, 34, 55, 66, 88, 99, etc...}
por lo demas funciona como queria lo de ordenar de menor a mayor ya me ocupo gracias muchas gracias Luis
|
|
|
339
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 18 Agosto 2014, 15:36 pm
|
Gracias elektro Como creo no saber nada algunas cosas ya que me da este error Error 1 No se puede encontrar el evento 'Shown'. ( edito ya lo resolví) otra cosa " leyendo el codigo donde pones Enumerable.Range(1I, 30I).ToArray ' 1 to 30
asumo que el programa lee que son números desde el 01 al 30 correlativamente ? si es así, no es la idea jejej ya que sabes que yo extraigo en el viejo programa unos resultados que varían y pueden ser 01 05 19 22 34 55 66 88 99 por ejemplo,y como no logro entender donde pongo mi variable para probarlo a ver también perdona mi ignorancia pero donde muestro los resultados estoy poniendo esto pero solo me sale " colección " ListBox1.Items.AddRange(combos.Cast(Of Object).ToArray)
gracias por tu infinita paciencia luis
|
|
|
340
|
Programación / .NET (C#, VB.NET, ASP) / Re: Mis malas combinaciones :(
|
en: 16 Agosto 2014, 11:40 am
|
Hola no debe ser aleatorio, ya que siempre cuando se ejecute el programa siempre deben salir las mismas combinaciones salvo que cambie el imput o los numeros en la variable los números a rellenar no importa estén o no en la variable siempre y cuando no repitan en la misma combinación y estén dentro del rango establecido .y termina cuando acabe el ultimo numero de la variable Buen dia Luis
|
|
|
|
|
|
|