Shell 25-10-2021, 20:31
Buenas!.

Estoy realizando un ejercicio con JavaScript en el que se hace uso de este bucle.
Aunque Gambas carece de el, se puede emular con Do Loop Until

El problema que me encontraba es el planteamiento del ejercicio que puede llevar a confusión.
Por ejemplo, dice el enumciado.
Cita:Para solicitar el nombre: repite la petición y no continúa si se introduce un número.

Es que eso de no continua si se introduce un número me quede a cuadros.

En JavaScript es algo como esto:

Código:
<script>            
           var nombre;
            do {
                // La segunda cadena se mostrará dentro de la casilla donde se introduce los datos
                nombre = prompt('Ingrese su nombre','Escribir aquí su nombre');
            } while(!isNaN(nombre));
</script>

La instrucción isNaN, ¿ es número ?. Como está negada se cumpliría la condición cuando no lo sea, una cadena por ejemplo
De ahí al enunciado. Suena raro.

En Gambas es algo como esto:

Código:
Public Sub Ejemplo5()

  Dim nombre As Variant

  Do
    Print ("Ingrese su nombre")
    Input nombre
    'Cuando es un número. La función da True y not la invierte haciendola False
    'Cuando es un caracter o cadena de caracteres. La función da False y not la invierte haciendola True.
  Loop Until Not IsNumber(nombre) 'Cuando es True Termina el bucle

End

La idea es hacerlo con este tipo de bucle. Aprender a usar el bucle.

Otros ejemplos:

En este caso no se cumple
Código:
Public Sub EjemploBucle2()

  Dim x As Integer = 4

  Do
    Print "x vale " & x
    x += 1
  Loop Until Not (x <= 10)

End

En este si, con ayuda del NOT.

Código:
Public Sub EjemploBucle2()

  Dim x As Integer = 4

  Do
    Print "x vale " & x
    x += 1
  Loop Until Not (x <= 10)

End

Os propongo un ejercicio. ¿ Es posible en el "Until" sin un if (claro) hacer la comprobación de esta condición que incluyo en el cuerpo del bucle ?.

Código:
Public Sub EjemploBucle3()

  Dim edad As Variant
  Dim condicion As Boolean

  Do
    Print ("Ingrese su edad")
    Input edad
    'Debe ser un número y encontrarse entre 1 y 105 años
    If IsNumber(edad) And If (CInt(edad) >= 1 And CInt(edad) < 105) Then
      condicion = True
    Else
      condicion = False
    Endif

  Loop Until condicion

End

Creo que no. El problema es que Cint va a intentar convertir una cadena de letras, que eso no es posible.

Saludos
AlfredoSC 25-10-2021, 14:15
Existen varios vídeos muy interesantes sobre la evolución de Lenguajes de Programación a través de los años. He aquí uno de ellos:

https://www.youtube.com/watch?v=M0vBoBqqjr0
Shell 24-10-2021, 12:40
Buenas!.

Ya, un montón. Pero saben que orden se puede usar y filtrar para conocerlos.

Código:
compgen -c

Supongamos que queremos saber cuantos comandos tenemos que comiencen con la palabra "ls"

[code]
Cita:ls
lsusb
lsmem
lslocks
lsb_release
lstmtraining
lscpu
lss16toppm
lsipc
lsattr
lsof
lsinitramfs
lslogins
lspci
lshw
lstmeval
lspgpot
lsns
lsdiff
lsmod
lspcmcia
lsblk
lsmod
ls

¿ Y si quisiéramos saber que hace cada uno de esos comandos ?

[code]
Cita:ls (1)               - list directory contents
lsusb (8)            - list USB devices
lsmem (1)            - list the ranges of available memory with their online status
lslocks (8)          - list local system locks
lsb_release (1)      - print distribution-specific information
lstmtraining (1)     - Training program for LSTM-based networks.
lscpu (1)            - display information about the CPU architecture
lss16toppm (1)       - Convert an LSS-16 image to PPM
lsipc (1)            - show information on IPC facilities currently employed in the system
lsattr (1)           - list file attributes on a Linux second extended file system
lsof (8)             - list open files
lsinitramfs (8)      - list content of an initramfs image
lslogins (1)         - display information about known users in the system
lspci (8)            - list all PCI devices
lshw (1)             - list hardware
lstmeval (1)         - Evaluation program for LSTM-based networks.
lspgpot (1)          - extracts the ownertrust values from PGP keyrings and list them in GnuPG ownertrust format.
lsns (8)             - list namespaces
lsdiff (1)           - show which files are modified by a patch
lsmod (8)            - Show the status of modules in the Linux Kernel
lspcmcia (8)         - display extended PCMCIA debugging information
lsblk (8)            - list block devices
lsmod (8)            - Show the status of modules in the Linux Kernel
ls (1)               - list directory contents

Saludos
Páginas (557):    1 355 356 357 358 359 557   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 286
Último miembro: Emilio Uribe
Temas del foro: 1,720
Mensajes del foro: 8,935
Últimos temas
Archivos .ods
Foro: General
Último mensaje por: tincho, 01-07-2025, 18:54
Respuestas: 8 - Vistas: 274
Publicidad
Foro: Sobre gambas-es.org
Último mensaje por: tincho, 01-07-2025, 18:48
Respuestas: 6 - Vistas: 333
Web con gambas, a ver si ...
Foro: WebApp/WebForms
Último mensaje por: tincho, 01-07-2025, 17:47
Respuestas: 41 - Vistas: 32,607
Un sistema de ayudas cont...
Foro: Videotutoriales
Último mensaje por: guizans, 22-06-2025, 19:55
Respuestas: 3 - Vistas: 310
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.