Tengo una duda con uno de mis ejercicios, en el que me he propuesto hacer una carga aleatoria sin repetir ingún nº en una tabla de 25elementos. No se si es un ejercicio del que necesito mas nociones básicas, puesto que solo llevo 3meses de curso y hemos llegado hasta los arrays (ordenación y búsquedas). No se si me hace falta algo algún conocimiento más.
En principio necesito alguna idea que me ilumine el camino a seguir ya que lo que he realizado tiene sentido pero no se como hacer la parte de generar un nº diferente a los que ya están puestos.
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim TB(4, 4) As Short
Dim TBC(24) As Short
Dim C_NUM As Short = 0
Dim H As Short = 0
For I As Short = 0 To 4
For J As Short = 0 To 4
TB(I, J) = Int((25 - 1 + 1) * Rnd()) + 1
TB(I, J) = TBC(H)
H = H + 1
Next
Next
H = 0
Do
For I = 0 To 4
For J = 0 To 4
If TBC(H) = TB(I, J + 1) Then
C_NUM = C_NUM + 1
TB(I, J + 1) = Int((24 - 0 + 1) * Rnd()) + 0
Else
C_NUM = C_NUM - 1
End If
Next
Next
H = H + 1
Loop While C_NUM > 0
For I = 0 To 4
For J = 0 To 4
TextBox1.Text = TextBox1.Text & TB(I, J)
Next
Next
End Sub
End ClasS
Tendras que poner un Do-While en donde generas el numero aleatorio, haciendo Do - generar - While (Existe(num) == false) y Existe() es una funcion que haras que se encargara de recorrer el array que estas llenando para ver si existe o no el nuevo valor aleatorio.
pd: Te recomendaria que te organices mejor en un papel primero para dar cuenta como comenzar, plantearte bien las funciones que haras como la de Existe() y como declararas las variables. Digo esto porque hay cosas en el codigo que no entiendo bien para que las haces. Eso de (25 - 1 + 1) no se para que lo haces, haces que demore mas el codigo, solo pone 25 y listo, es como si has corregido un bug pero no te has dado cuenta de sumarlo todo ya xD
pd2: Puedes buscar en numero "numeros aleatorios elguille" y tendras para leer sobre esto de los numeros aleatorios, porque tendras algun problema luego tal vez, que no te generara los numeros realmente aleatorios, porque tienes que usar el Randomize, pero eso lo veras si buscas como te dije.
Saludos!