Tornar a l'índex d'aquest tutorial!
QBasic tutorial 4
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.
Tornar a l'índex d'aquest tutorial!
©
1995-97, etsimo WWW team