Números aleatoreos

Disculpa si mi pregunta ya te ha llegado, es que horas después de habértela mandado reingrese en la página y dice que tengo 0 preguntas activas.
Mi pregunta como puedo hacer en VB un programa que me tire por ej. 10 números aleatoreos de entre 100, y mostrarlos.

2 respuestas

Respuesta
1
Para hacer lo que quieres debes utilizar la función Randomize. Aquí te pongo el código de un pequeño proyecto que hace lo que tu dices, el proyecto consta de un formulario y en el formulario dos commandButtons y dos textbox. El código del formulario aquí te lo pongo. Si quieres que te mande el proyecto mandame tu dirección de correo y te lo mando completo. Mi dirección es [email protected]
El proyecto esta en VB6 y espero que te sirva, si tienes alguna duda puedes ponerte en contacto conmigo cuando quieras.
Option Explicit
Public Function Dame10Entre1y100(Numeros() As Long)
'Declaramos unas variables que nos seran necesarias
Dim Numero As Long
Dim Indice As Long
Dim Indice2 As Long
Dim Valor As Long
Dim Mensaje As String
'Redimensionamos la matriz que contendra los 10 numeros
ReDim Numeros(0 To 9) As Long
'Iniciamos el generador de numeros aleatorios
Randomize
'Iniciamos un bucle para obtener los 10 numeros
For Indice = 0 To 9
'Ponemos una etiqueta
Damenumero:
'Obtenemos un numero entre 1 y 100
Numero = Int(100 * Rnd() + 1)
'Ahora comprobamos que no lo hallamos elegido ya
For Indice2 = 0 To 9
Valor = Numeros(Indice2)
'Si ya esta en uso le hacemos que lo vuelva a generar
If Valor = Numero Then
GoTo Damenumero
End If
Next Indice2
Numeros(Indice) = Numero
Mensaje = Mensaje & Chr(13) & Numeros(Indice)
Next Indice
'Mostramos un mensaje con los numeros
MsgBox Mensaje
End Function
Public Function Dame10EntreXY(Numeros() As Long, Disponibles() As Long)
'Variables que nos seran necesarias
Dim Elementos As Long
Dim Numero As Long
Dim Indice As Long
Dim Indice2 As Long
Dim Valor As Long
Dim Mensaje As String
Dim Comprobaciones() As Boolean
'Redimensionamos la matriz
ReDim Numeros(0 To 9)
'Iniciamos el generador de numeros aleatorios
Randomize
'Obtenemos el numero de elementos que contiene la matriz
Elementos = UBound(Disponibles)
'Redimensionamos la matriz de comprobacion
ReDim Comprobaciones(0 To Elementos - 1)
'Iniciamos un bucle para obtener los 10 numeros
For Indice = 0 To 9
'Ponemos una etiqueta
Damenumero:
'Obtenemos un numero entre 0 y el numero de elementos
Numero = Int(Elementos * Rnd())
'Comprobamos si ya esta elegido
If Comprobaciones(Numero) = True Then
GoTo Damenumero
End If
'Ponemos el numero en la matriz
Comprobaciones(Numero) = True
Numeros(Indice) = Disponibles(Numero)
Mensaje = Mensaje & Chr(13) & Numeros(Indice)
Next Indice
'Mostramos el mensaje con los numeros
MsgBox Mensaje
End Function
Private Sub Command1_Click()
Dim Elegidos() As Long
Call Dame10Entre1y100(Elegidos())
End Sub
Private Sub Command2_Click()
'Variables requeridas
Dim Indice As Long
Dim Rango() As Long
Dim Numeros() As Long
Dim TotalNumeros As Long
'Ponemos el numero de elementos que contendra la matriz
TotalNumeros = Text2.Text - Text1.Text
'REdimensionamos la matriz
ReDim Rango(TotalNumeros)
'REllenamos la matriz del rango que contendra los numeros
For Indice = 0 To TotalNumeros - 1
Rango(Indice) = Text1.Text + Indice
Next Indice
'Llamamos a la funcion
Call Dame10EntreXY(Numeros(), Rango())
End Sub
Respuesta
'Devuelve números de 7 a 12 (ValorMinimo+Intervalo)
'Randomize Timer inicializa el contador de números aleatorios
'con la hora. Si no lo hiciéramos, siempre nos daría
'la misma serie de números aleatorios
Randomize Timer
Dim Numero(9) As Integer, x As Integer
Dim ValorMaximo As Integer, ValorMinimo As Integer
Intervalo = 5
ValorMinimo = 7
For x = 0 To 9
Numero(x) = Int((Intervalo * Rnd) + ValorMinimo)
MsgBox Numero(x)
Next

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas