Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Neobius en 2 Octubre 2005, 19:58 pm



Título: Colocar letras
Publicado por: Neobius en 2 Octubre 2005, 19:58 pm
Hola, queria saber como puedo puedo programar un programa que ordene las letras del abecedario de todas las maneras posibles, es decirque tenga un boton y cuando le de un clic genere en un textbox todas la posibilidades. POr ejemplo:
abcdefghijkllm........
asdfgqiwurlbkxmz...


Título: Re: Colocar letras
Publicado por: NYlOn en 2 Octubre 2005, 23:52 pm
Bueno, te hice una partecita, ahora te keda terminar el code para que no c repitan las letras... es facil xD

salu2

Código:
Private Sub Command1_Click()
 Dim Num As String
 Dim Cuenta As Byte
 
 Text1 = ""
 Math.Randomize
 
 Do While Not Cuenta = 26
    Num = Int(Rnd * 26)
    Cuenta = Cuenta + 1
    Select Case Num
        Case "0"
            Num = "A"
        Case "1"
            Num = "B"
        Case "2"
            Num = "C"
        Case "3"
            Num = "D"
        '...
    End Select
    Text1 = Text1 & Num
Loop
End Sub


G0nz4 ;)


Título: Re: Colocar letras
Publicado por: xavierote en 3 Octubre 2005, 09:49 am
Yo lo que haría con tu parte que has programado, sería en vez de utilizar un montón de comparaciones, sería crear una variable y meter ahí el abecedario, para luego sacar las letras por la función mid$(). Por ejemplo:

Código:
Private Sub Command1_Click()
Dim Num As String
Dim Cuenta As Byte
Dim Abecedario as String

Abecedario = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"
Text1 = ""
Math.Randomize

Do While Not Cuenta = 26
    Num = Int(Rnd * 26)
    Cuenta = Cuenta + 1
    Num = Mid$(Abecedario, Num + 1, 1)        ' La posición empieza por el valor 1, y no 0, por tanto, como el RND genera valores de 0 a 26, se le suma 1.
    Text1 = Text1 & Num
Loop
End Sub

También se podría utilizar la función Chr() para sacar también una letra del abecedario al azar. Pero eso ya es cuestión de imaginación.

Saludos!!


Título: Re: Colocar letras
Publicado por: Slasher-K en 4 Octubre 2005, 09:11 am
El siguiente código tiene 3 modalidades de ordenar las letras, ascendente, descendente y aleatorio.

Código:
Option Explicit
Option Base 1

Const SORT_ASC = 1
Const SORT_DES = 2
Const SORT_RAND = 3

Function SortAbc(SortMode As Integer) As String
        Dim iChar() As Byte
        Dim bExist  As Boolean
        Dim i%, ind%, iRnd%
        Dim sData$

  ReDim Preserve iChar(0 To (vbKeyZ - vbKeyA)) As Byte

  Call Randomize(vbKeyZ)

  For i = vbKeyA To vbKeyZ
    Select Case SortMode
      Case SORT_DES
        sData = sData & Chr$((vbKeyZ - i) + vbKeyA)
      Case SORT_ASC
        sData = sData & Chr$(i)
      Case SORT_RAND
NewNum:
        iRnd = Rnd * vbKeyZ
       
        If iRnd < vbKeyA Then GoTo NewNum
       
        For ind = 1 To (vbKeyZ - vbKeyA)
          If iChar(ind) = iRnd Then
            bExist = True
            Exit For
          End If
        Next
       
        If ind >= 25 Then bExist = False
       
        If bExist Then GoTo NewNum
       
        iChar(i - vbKeyA) = iRnd
        sData = sData & Chr$(iChar(i - vbKeyA))
       
    End Select
  Next

  SortAbc = sData
End Function

Saludos.

EDIT: Sólo funciona en VB6 porque .NET no acepta los GoTo.


Título: Re: Colocar letras
Publicado por: la caca en 7 Octubre 2005, 19:09 pm
che para hacer lo que vos queres, es decir ordenar el abecedario de todas las formas posibles tenes que hacer 26! (26 factorial) es decir       26!=403291461126605635584000000

entonces tenes 403291461126605635584000000 formas pisbles de ordenar el abecedario  :o  :o  :o  :o

yo usaria este algoritmo que programe:

Código:
Dim x As Integer  'defino variables
Dim u As Double

Private Sub command1_click() 'se necesita un command button
x = Text1.Text 'defino a t como un text1 (que lo tenes que agregar y tiene que ser si o si un numero), para probarlo ponele de texto el numero 8
u = 1  ' defino a u como 1
For a = 1 To x  'digo que a va del numero 1 al numero que tiene el text1
     u = u * a 'digo que u = u * el numero 1, 2, 3, 4, 5, 6, 7, 8 (si es que el text1 es 8), es decir multiplica a 8*7*6*5*4*3*2*1 (saca factorial)
Next a
Label1.Caption = u  'ahora el label vale el valor de u (el factorial del numero que esta en text1), tenes que agregar un label.
'listo todo listo una masasa
End Sub



P.D.:
Citar
programar un programa
  (es dificil programar un arbol jejejjeje)


Título: Re: Colocar letras
Publicado por: _Sergi_ en 8 Octubre 2005, 01:27 am
Citar
Citar
programar un programa
  (es dificil programar un arbol jejejjeje)

xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD!!