Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: arts en 1 Febrero 2013, 17:57 pm



Título: Duda con uno de mis ejercicios
Publicado por: arts en 1 Febrero 2013, 17:57 pm
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
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  4.  
  5.        Dim TB(4, 4) As Short
  6.        Dim TBC(24) As Short
  7.        Dim C_NUM As Short = 0
  8.        Dim H As Short = 0
  9.  
  10.        For I As Short = 0 To 4
  11.            For J As Short = 0 To 4
  12.                TB(I, J) = Int((25 - 1 + 1) * Rnd()) + 1
  13.                TB(I, J) = TBC(H)
  14.                H = H + 1
  15.            Next
  16.        Next
  17.        H = 0
  18.  
  19.  
  20.        Do
  21.            For I = 0 To 4
  22.                For J = 0 To 4
  23.                    If TBC(H) = TB(I, J + 1) Then
  24.                        C_NUM = C_NUM + 1
  25.                        TB(I, J + 1) = Int((24 - 0 + 1) * Rnd()) + 0
  26.                    Else
  27.                        C_NUM = C_NUM - 1
  28.                    End If
  29.                Next
  30.            Next
  31.            H = H + 1
  32.        Loop While C_NUM > 0
  33.  
  34.        For I = 0 To 4
  35.            For J = 0 To 4
  36.                TextBox1.Text = TextBox1.Text & TB(I, J)
  37.            Next
  38.        Next
  39.  
  40.  
  41.  
  42.    End Sub
  43. End ClasS


Título: Re: Duda con uno de mis ejercicios
Publicado por: $Edu$ en 2 Febrero 2013, 11:50 am
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!