QBasic tutorial 6

Dentro de QBasic puedes crear un programa que haga algo en uno u otro período de tiempo o hasta que el usuario haga al ordenador hacer algo más. En esta parte del tutorial voy a mostrarte un par de técnicas que te permitan hacer esto. Ya hemos visto un bucle de este tipo como "FOR" y "NEXT". Este bucle permite operar por un camino completamente distinto a los vistos en ejemplos anteriores.

Ahora voy a adentrarte en los comandos de bucle "DO" y "LOOP". Este es un programa básico en el cual el bucle se repite una y otra vez hasta que el usuario lo para presionando las teclas CTRL & SUPR. Escríbelo y córrelo presionando "F5".

CLS
DO
PRINT "HOLA MUNDO"
LOOP
Para este ejemplo puedes ver las palabras "HOLA MUNDO" escritas siempre debajo en la pantalla. Tal vez no esté muy claro en este momento pero el programa realmente está haciendo algo. Muchas veces podrás notarlo si el cursor está en la parte baja de la pantalla.

Como puedes ver los comandos "LOOP" y "DO" son bastante eficaces incluso en este momento. Vamos a separar los comandos para ver lo que hacen realmente.

DO

Este comando prepara el comienzo del bucle que ejecutó anteriormente entre los comandos "DO" y "LOOP":

LOOP

El comando "LOOP" sólo es ejecutado si está presente "DO", como en los ejemplos anteriores. Todo el tiempo el comando "DO" de tu programa está esperando encontrar un comando "LOOP".

Hay más sobre "LOOP" y "DO" que se están repitiendo siempre. Vamos a insertarlo en los comandos consiguiendo extraer alguna clase de resultado de nuestro ordenador. Ahora te voy a enseñar un comando más llamado "WHILE". Este comando es bastante efectivo pero a veces es complicado de entender. Aquí tienes un ejemplo simple que necesitas copiar y correr.

CLS
DO WHILE I < 10
I= I + 1
PRINT I
LOOP
El programa puede parecer complicado pero realmente no lo es. Cuando corras el programa simplemente escribe de 1 a 10 uno debajo de otro en la pantalla. El programa está realmente comprobando para ver si la variable I=10 y si esto hace que el programa finalice el bucle.

En principio comenzamos el bucle y decimos que mientras que I no sea 10 escriba el valor en la pantalla. En este caso el programa volverá al principio y comprobará la variable para ver si ha alcanzado el valor 10. Es simple, pero asegúrate que lo alcanza. Intenta cambiar la primera línea a un valor de 20 y mira lo que sucede. En la línea debería leerse ahora:

DO WHILE I < 20
Puede parecerte extraño, pero si ahora corres el programa te escribirá de 1 a 20 uno debajo de otro en la pantalla. Para dar el siguiente paso, puedes hacerlo eligiendo dónde poner el comando "WHILE". Antes de darte otro ejemplo de programación déjame explicarte brevemente un poco más del comando "WHILE".

WHILE

Esto es sólo un poco de lo que te contaré sobre el comando "WHILE" porque está mejor explicado junto a otro comando llamado "WEND". El comando "WHILE" permite que compruebes una condición de algo al dar el resultado. Como explicamos en un ejemplo anterior está clasificado como un comando comprobador.

El comando "WHILE" puede ser situado en otro lugar en el ejemplo de programación que te di antes y obtendrás el mismo resultado. Este es un código que hace lo mismo que antes.

CLS
DO
I=I+1
PRINT I
LOOP WHILE I < 10

Así que como puedes ver el programa de arriba te dará el mismo resultado si presionas "F5" y lo corres. Así que los bucles "DO" y "LOOP" te darán la misma clase de flexibilidad cuando decidas dónde situar el código en tu programa. Esto permite mayor control sobre resultados y diseños en el programa, recuérdalo. Los bucles son explicados y usados con más detalle en los tutoriales después.

Comprensión de la introducción al usuario

La introducción al usuario es una parte vital en cualquier programa. Por ejemplo ya hablé de como manejar variables y cadenas. También hablé de cómo usar el comando "PRINT" en pequeño detalle. Vamos a poner todos nuestros conocimientos previos en práctica en un programa completo. No te preocupes si el programa parece un poco complicado y laborioso, es fácil, sólo sigue poco a poco y todo saldrá claro.

CLS
Contraseña$="MANZANA"
DO
INPUT "Cual es tu contraseña:", Pase$
IF Pase$ = Contraseña$ THEN Enter=1
LOOP WHILE Enter <> 1
CLS
PRINT " íHas accedido!&quo;
Después de haber escrito el programa y presionar "F5" la pantalla se limpiará y te pedirá la contraseña. Si metes cualquier cosa que no sea "MANZANA" te la pedirá una y otra vez hasta que la introduzcas correctamente.

Recuerda que el programa está comprobando a ver si lo escribes en mayúscula o minúscula. Este programa sólo lo aceptará si tú escribes la palabra manzana como "MANZANA" no como "manzana". En turoriales posteriores explicaremos como cambiar palabras que estás en minúsculas a mayúsculas y viceversa sin presionar las teclas de BLOQ MAYÚS o SHIFT.

Un vistazo rápido a WHILE

Debajo tienes el código principal para un simple programa más en el que te mostraré el comando "WHILE". Escribe lo siguiente en QBasic y presiona "F5" para correrlo.

DO
I = I + 1
PRINT I
LOOP WHILE I <> 1000
El programa anterior hace más sencilla la comprensión de los comandos"DO, LOOP, WHILE". Si escribes el programa y lo corres, contará de 1 a 1000. Esto es fácil de comprender si echas un vistazo a como está hecho. Primero te mostraré como el ordenador comienza el bucle usando el comando "DO". Luego estamos preguntando al ordenador para empezar por una variable llamada "I". La siguiente sentencia escribirá el valor de i en la pantalla, en cuyo caso el valor inicial debe ser 0. El ordenador ha empezado la variable con un valor 0. La siguiente parte del programa comprobará para ver si el valor "I" de la variable es 1000, si no es así saltará al comienzo del bucle, que en este caso es la sentencia "DO". Luego el ordenador te dirá que sumes la variable 1 al valor anterior de la variable "I", en este caso debe hacer "I"= 1 luego 2 luego 3 etc.

Con el programa anterior puedes cambiar la "I = I + 1" a "I = I + 2". Esto provocará que el ordenador sume 2 a la variable "I" hasta que el ordenador alcance la sentencia final que es "LOOP WHILE" para comprobar si "I" ha alcanzado el valor 1000.

CLS
Nombreantiguo$ = "FRED"
DO
INPUT " cual es tu nombre:", nombre$
IF nombre$ = Nombreantiguo$ THEN acceso = 1
LOOP WHILE acceso <> 1
Arriba hemos usado de nuevo una clase de programa parecido, como el programa de contraseña, el cual permitía al usuario comprobar la información de entrada de una variable respecto a otra. El anterior programa te pide un nombre. Si la información que has escrito es la misma que la contenida en la variable "Nombreantiguo$" el programa continuará, si no es la misma saldrá.

Ten una pequeña practica usando variables con clases de bucles "DO LOOP" y mira lo que puedes obtener. En este capítulo has aprendido los bucles de control básicos introduciendo información desde el teclado. En el siguiente capítulo te mostraré un menú de programa simple el cual usa nuevos comandos como "SELECT", "CASE" e

"IS". Voy a advertirte que ahora, en el siguiente capítulo tal vez te perderás un poco, pero no pasa nada esto es sólo una parte del proceso de aprendizaje. Si te pierdes no lo dejes, sólo lee el capítulo de nuevo hasta que veas todas las cosas claras. Muy pronto escribiré un programa en el que usaremos casi todos los comandos vistos hasta ahora. Este programa será ideal como referencia y para darte sólo un sentido general de cómo poner los comandos juntos y hacer buenos programas. Sigue hasta el siguiente capítulo.

© 1995-97, etsimo WWW team