https://foro.gambas-es.org/viewtopic.php?f=1&t=7145
-----------------------------------
Shell
Miercoles, 12 Septiembre 2018, 07:56

Desordenar Las Letras De Una Palabra
-----------------------------------
Buenos días!.

De un ejemplo de Python que no es necesario completar, la idea es tomar una cadena y desordenar sus caracteres al azar.

[code linenumbers=false syntax=gambas]
Private palabras As String[] = ["Gambas", "Python", "Java", "Visual Basic"]
Private palabra As String
Private desordenada As String 

Public Sub Main()
  
  Dim posicion As Integer
  
  Randomize
  
  palabra = palabras[Int(Rnd(0, palabras.count))]
  Debug palabra  
  desordenada = ""  
  'Continuar hasta que el contenido de la cadena palabra sea vacio
  While palabra 
    posicion = Int(Rnd(1, Len(palabra)))
    desordenada &= Mid(palabra, posicion, 1)
    'Desde la posición del primer caracter hasta el indice posición menos 1 y concatenar desde indice posición más 1 hasta la longitud que mida la palabra menos indice posición más 1
    'Resumiendo: Eliminar el caracter que se encuentra en la posición
    palabra = Mid(palabra, 1, posicion - 1) & Mid(palabra, posicion + 1, Len(palabra) - posicion + 1) 
  Wend
  Debug desordenada
  ' No esta contemplado que la palabra desordenada sea igual que la original. Pues se da el caso :-D
  
End
[/code]

En Python existe el troceado, no existen comandos para el tratamiento de cadenas como Mid, Left o Right.
Una cadena es una secuencia de caracteres. El indice en Python de una cadena comienza en 0 mientras
que en Gambas comienza en 1.

Ahora os comento en otro mensaje un bug que parece que dio Gambas al azar en un momento determinado.

Aquí tenéis el ejemplo.

Saludos


-----------------------------------
cogier
Jueves, 13 Septiembre 2018, 17:07

Re: Desordenar Las Letras De Una Palabra
-----------------------------------
Intenta cambiar la línea: -

'palabra = palabras[Int(Rnd(0, palabras.count))]
palabra = palabras[Rand(0, palabras.Max)]


-----------------------------------
Shell
Jueves, 13 Septiembre 2018, 19:29

Re: Desordenar Las Letras De Una Palabra
-----------------------------------
Hola cogier.

[quote]
Intenta cambiar la línea: -

'palabra = palabras[Int(Rnd(0, palabras.count))]
palabra = palabras[Rand(0, palabras.Max)]
[/quote]

Vaya, claro esto es posible desde la versión de Gambas 3.6.
Es la costumbre de hacerlo siempre igual.
Supongo que con esto se va eliminar la forma tradicional de hacerlo con Int y Rnd. 

[quote]
Contrary to Rnd, the higher born of the interval can be returned.
[/quote]

En el indice de ayuda de Gambas en español no aparece tan fácilmente y para encontrar su uso, tuve que escribir el nombre de la función y luego solicitar ayuda con la tecla F2.  :sad: 

Tendré que acostumbrarme a usar Rand. Es una forma más abreviada. :-)

Saludos


