Duda con uno de mis ejercicios

Iniciado por arts, 1 Febrero 2013, 17:57 PM

0 Miembros y 1 Visitante están viendo este tema.

arts

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.

Código (vbnet) [Seleccionar]
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

$Edu$

#1
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!