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...
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 ;)
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!!
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.
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)
CitarCitar
programar un programa
(es dificil programar un arbol jejejjeje)
xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD!!