Visual Basic.NET - Numeros aleatorios no repetidos y ordenados en ascendente en array

 
Vista:
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Pedro (38 intervenciones) el 12/04/2017 00:54:13
Hola!

se que es fácil pero soy novato y no lo logro,

Necesito generar 3 números aleatorios entre 1 y 10 , estos 3 números tienen que ser distintos, y tienen que ordenarse en un array de menor a mayor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Class Generador
    Dim numeros(2) As Array
    Dim numero1, numero2, numero3 As Integer
 
    Private Sub Generador_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Randomize()
    End Sub
 
    Public Function results()
        numero1 = Int(-10 * Rnd() + 11)
 
        numero2 = Int(-10 * Rnd() + 11)
 
        numero3 = Int(-10 * Rnd() + 11)

yo se hacer hasta aquí! espero que esto esté bien :S, he creado un array llamado "numeros" para almacenar el resultado, 3 variables llamadas numero1,2 y 3 y una funcion llamada "results" que genera el numero aleatorio de cada variable.
faltaría hacer que no se repita ningún numero y ordenarlos de menos a mas

Gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 196
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por arbol (166 intervenciones) el 12/04/2017 01:44:10
debes poner una condicion de si se repiten los tres volver a generar el rnd

pero te sugieron que si lo haces como vas

debes crear tres funciones para cada numero de 1-a 10

asi poner un if

si en dos variables se repiten generar el rnd en esa variable

asi sucevivanente para tres variables

y quedara tu funcion bien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Pedro (38 intervenciones) el 12/04/2017 01:56:49
Asi? me sigue repitiendo los numeros..

1
2
3
4
5
6
7
8
If numero1 = numero2 = numero3 Then
        numero1 = Int(-10 * Rnd() + 11)
 
        numero2 = Int(-10 * Rnd() + 11)
 
        numero3 = Int(-10 * Rnd() + 11)
 
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Pedro (38 intervenciones) el 12/04/2017 02:44:20
He probado lo mismo pero con un while y también me repite les números aveces.. ¿alguien podría ayudarme?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Pedro (38 intervenciones) el 12/04/2017 13:53:38
Nada no hay manera, tarde o temprano siempre me repite algún numero, no lo entiendo.. alguien puede echarme una mano?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Carlos Castro (1 intervención) el 12/04/2017 23:29:21
Aqui esta una solución, se puede abreviar....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim numero(2) As Integer
    Dim numal As New Random
    Dim num As Integer
 
    Dim C As Integer
    Dim SW As Boolean
    C = 0
    Do
        num = numal.Next(1, 5)  'genera del 1 al 4
        MsgBox(" GENERA:" & num)
        If C = 0 Then
            numero(C) = num
            C = C + 1
 
        Else
            SW = False
            For Y = 0 To C - 1
                If num = numero(Y) Then
                    MsgBox("YA EXISTE")
                    SW = True
                End If
            Next
 
            If SW = False Then
                MsgBox("NO EXISTE")
                numero(C) = num
                C = C + 1
            End If
        End If
    Loop While C <> 3
 
    For C = 0 To 2
 
        MsgBox("FINAL NUMERO=" & numero(C))
    Next
End Sub



1
num = numal.Next(1, 5)  'genera del 1 al 4

Solo genero del a 1 al 4 para comprobar lo que se repite...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Pedro (38 intervenciones) el 13/04/2017 02:29:19
Muchas gracias por tu respuesta amigo! mañana lo pruebo, ¿podrías volver a poner el código marcando antes que es código de programación?, así los espacios se respetarían y es mas fácil de aplicar, si no sabes donde es es aquí:

ba92be33c948bd70b96a57ec5b64077ao

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Pedro (38 intervenciones) el 13/04/2017 19:46:21
no lo consigo! :( pondré otro post mas claro porque creo que no me explique bien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por jorge rojas p (1 intervención) el 15/04/2017 02:06:13
ya encontraste la solucion?
yo tengo una
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Pedro (38 intervenciones) el 15/04/2017 02:10:25
Hola Jorge, encontré la solución para no repetir ningún numero, pero aún no para ordenar de menor a mayor los números, por ejemplo tengo 3 variables:

numero1=9
numero2=2
numero3=5

Como hago para que su valor se ordene así

numero1=2
numero2=5
numero3=9

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por jorge rojas p (20 intervenciones) el 15/04/2017 05:45:54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
        Dim posi As New List(Of Byte)()
        Dim num(2) As Byte
        Dim numero As Byte
        Randomize()
        numero = Int(9 * Rnd() + 1)
        posi.Add(numero)
        For Me.j = 0 To 1
86:         numero = Int(9 * Rnd() + 1)
            For Me.i = 0 To posi.Count - 1
                If numero > posi(i) Then posi.Insert(i, numero) : GoTo 87
                If numero = posi(i) Then GoTo 86
            Next
            posi.Add(numero)
87:     Next
        For Me.j = 0 To 2
            num(j) = posi(j)
        Next
        MsgBox(num(2) & " " & num(1) & " " & num(0))
    End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Numeros aleatorios no repetidos y ordenados en ascendente en array

Publicado por Pedro (38 intervenciones) el 15/04/2017 15:02:34
Muchas gracias Jorge, yo solo quiero ordenar las variables lo otro ya lo tengo echo y lo quiero mantener tal cual lo tengo porque así lo entiendo mejor, acabo de hacer otro post mas especifico, gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar