Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: pablomillon en 18 Abril 2015, 20:07 pm



Título: Escojer nombres ramdom
Publicado por: pablomillon en 18 Abril 2015, 20:07 pm
Me Bota error al querer escojer el nombre radom este es el code  quiero escojer uno de esos 4 nombres ramdom pero no me lo da :vl si me pudieran ayudar aque me lo bote radom
Código:
[code]Public Class Form1
    Dim pool As String = ""
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        pool = ""

       
        If CheckBox2.Checked = True Then
            pool = pool & "Pedro"
            pool = pool & "Pablo"
            pool = pool & "Juan"
            pool = pool & "Jose"
        End If
       
        Dim count = 0
        Result.Text = ""

        Dim cc As New Random
        Dim strpos = ""
       

        End While
[/code]


Título: Re: Escojer nombres ramdom
Publicado por: josprou en 4 Mayo 2015, 18:07 pm
Una idea sería asignar a cada nombre un ID, y crear una función que generase un integer aleatorio comprendido entre n1-n2.

El código que muestro a continuación es una adaptacción del código de Guille. Échale un ojo para profundizar en la generación de aleatorios.
http://www.elguille.info/NET/dotnet/random_Next.aspx

Código:
Option Strict On
Imports Microsoft.VisualBasic
Imports System

Module Module1
    Dim semilla As Integer
    Dim rnd As Random


    Sub Main()
        Dim num As Integer

        semilla = CInt(DateTime.Now.Ticks)
        ' Para que funcione Ticks
        ' debes quitar la comprobación de desbordamiento de enteros
        ' en las propiedades del proyecto, ficha compilación, opciones avanzadas

        rnd = New Random(semilla)

        For i As Integer = 1 To 10
            num = numeroaleatorio()
            Console.WriteLine("{0:00} {1}", i, num)
        Next
        Console.WriteLine()
        Console.WriteLine("Pulsa una tecla")
        Console.ReadKey()
    End Sub

    Function numeroaleatorio() As Integer
        Dim integro As Integer

        ' Prueba 1:
        ' El valor debe ser un integer válido,
        ' desde el numero 1  
        ' hasta la numero 4
        integro = (rnd.Next(1, 5))

        ' Devolvemos el integer generado
        Return integro

    End Function
End Module

End Module


Título: Re: Escojer nombres ramdom
Publicado por: pkj en 19 Mayo 2015, 01:43 am
El millon seran las incognitas que tiene sobre basic :D


Título: Re: Escojer nombres ramdom
Publicado por: okik en 19 Mayo 2015, 19:58 pm
Hola

Vendría bien que explicaras que es  lo que quieres hacer exáctamente, porque sólamente con el código no siempre basta. La verdad a mi no me queda claro. Me da la impresión que lo que quieres es obtener esos nombre de forma aleatoria.

A ver si este código te sirve:

Código
  1.           Dim X As Int32 = 0
  2.        Dim N(0 To 3) As String
  3.        Randomize() 'Evita que cada vez que se inicie la apliación se obtenga el mismo random
  4.        N(0) = "Pedro"
  5.        N(1) = "Pablo"
  6.        N(2) = "Juan"
  7.        N(3) = "Jose"
  8.        Result.Text = ""
  9.        pool = ""
  10.        X = Int(Rnd() * 4) 'Obtiene números aleatórios del 0 al 3
  11.        If CheckBox2.Checked = True Then
  12.            pool = pool & N(X)
  13.        End If
  14.        Result.Text = pool