Colocar letras

Iniciado por Neobius, 2 Octubre 2005, 19:58 PM

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

Neobius

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...


Todos somos muy ignorantes, lo que ocurre es que no todos ignoramos lo mismo.
Albert Einstein

Recuerda: El arca de Noe fue construida por aficionados, el titanic por profesionales

http://neobius.blogspot.com

NYlOn

Bueno, te hice una partecita, ahora te keda terminar el code para que no c repitan las letras... es facil xD

salu2


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 ;)

xavierote

#2
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:

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

Slasher-K

#3
El siguiente código tiene 3 modalidades de ordenar las letras, ascendente, descendente y aleatorio.


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.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

la caca

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:

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.:
Citarprogramar un programa
(es dificil programar un arbol jejejjeje)
algo huele mal.... firma "LA CACA"


_Sergi_

CitarCitar
programar un programa
  (es dificil programar un arbol jejejjeje)

xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD!!
Proyecto de Ingeniero