Codificación aprenderaprogramar.com: CU00172A
ENTRADAS CONTROLADAS POR EL USUARIO
Nos referimos a “entradas controladas por el usuario” en alusión a cualquier actuación de la persona que está delante del ordenador y que afecta al programa. Casos muy habituales son las preguntas: ¿Quiere continuar?, Elija una opción, Aceptar o Cancelar, Introduzca un dato, ...
Si tratáramos de clasificar qué es una entrada controlada por el usuario podríamos hacerlo como “Entrada externa” y ésta sería cualquier relación del programa con un agente externo al mismo. Simplificadamente dividiremos los agentes externos en archivos, usuarios y otros dispositivos.
Dentro de otros dispositivos tendríamos un cajón de sastre donde caben otros programas, otros ordenadores, y cualquier dispositivo “inteligente”, llámese impresora, lavadora o teléfono.
Esto lo sacamos a colación únicamente para indicar que aunque normalmente nos referimos a interacciones con el usuario del ordenador – persona física, una pregunta como “¿Quiere continuar?” la podría responder igualmente otro ordenador o una lavadora.
Por otro lado habría que matizar que con los ordenadores, sistemas operativos, y programas actuales el concepto de “Interactividad del usuario con el ordenador” ha variado sustancialmente respecto a como era hace unos cuantos años. En los entornos tipo Windows la interfaz gráfica y gestión de eventos hacen que parezca primitivo aquel entorno tipo MS-DOS con su órdenes, preguntas y ejecutoria marcialmente secuencial. Efectivamente, hoy el usuario actúa casi cuando quiere y como quiere, y no únicamente a través de preguntas o variables sino a través de vínculos, clics, dobles clics, etc. Estos aspectos los trataremos cuando hablemos del Visual Basic para de momento centrarnos en las bases de la programación.
Volviendo al tema de “entradas controladas por el usuario”, ya hemos visto algunas aplicaciones. Por ejemplo, para definir un número de iteraciones a realizar (número n de generaciones en una cadena sucesoria...) o elegir una opción (determinación del precio de un libro o de un lote de libros...).
Nos interesa ahora centrarnos en lo que podríamos llamar bucles controlados directamente por el usuario. Añadiríamos esta vía a la lista de formas de control de bucles que quedaría:
· Control de bucles conociendo número de iteraciones.
· Control de bucles a través de variable de control.
· Control de bucles mediante señaleros.
· Control de bucles de forma directa por el usuario.
Una forma habitual de control sería esta:
Mientras Respuesta = “s” ó Respuesta = “S” Hacer Instrucción 1 Instrucción 2 . . . Instrucción n Mostrar “¿Quiere continuar? (s/n)” Pedir Respuesta Repetir |
Diagrama de flujo:
Respecto a lo que veníamos viendo hay novedades relevantes como:
· La ejecución del bucle se para indefinidamente si el usuario no da respuesta.
· El número de repeticiones es indefinido quedando la salida del bucle a expensas de la voluntad del usuario.
Puede usarse la instrucción Hacer ... Repetir Mientras si el núcleo del bucle ha de ejecutarse necesariamente una vez. Con Mientras ... Hacer el bucle no se ejecutará ninguna vez si la condición de entrada no es válida. Que sea válida puede ser fijado por el programador para forzar la entrada al menos una vez, o bien depender de otras circunstancias como una anterior decisión del usuario, del valor de una variable, etc. Un ejemplo habitual puede ser el de solicitar la aceptación de los términos de una licencia, unas condiciones, una información, etc.
Hacer Mostrar “Las condiciones para el uso del programa son las descritas en la licencia. ¿Acepta los términos de la licencia? (s/n)” Pedir Aceptación Repetir Mientras Aceptación <> “s” ó Aceptación <> “S” |
¿Son este tipo de bucles infinitos? No. Al menos no de acuerdo con el concepto de bucle infinito que venimos aplicando. En estos bucles el número de repeticiones puede ser muy grande, pero se entiende que el usuario siempre decidirá salir en algún momento, incluso cuando pueden transcurrir días o meses con el bucle en funcionamiento. Muchas veces usaremos la opción Cancelar como vía para salida del bucle que permite no tener que tomar decisiones de las que el usuario no está seguro.
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.