Tornar a l'índex d'aquest tutorial!


QBasic Turorial 8

Usar números en QBasic es probablemente una de las cosas más importantes que vas a necesitar conocer cuando escribas un programa en QBasic. Por ejemplo si estás escribiendo un juego probablemente necesitarás guardar la puntuación de los jugadores y algunos bonos que obtenga. Un ejemplo simple de sumar un bono al marcador es probablemente este:

bono = 100
puntuación = 500
puntuación = puntuación - bono
PRINT score

El programa anterior muestra como QBasic guarda el valor 100 en la variable "bono" y 500 en la variable "puntuación". La siguiente línea suma ambas "puntuación" y "bono" juntas y le asigna un nuevo valor a la variable "puntuación". Este ejemplo acaba de mostrarnos un camino para sumar valores variables e igualarlas a un nuevo resultado.

Podrías hacer cosas un poco más complicadas que ésta. ¿Que harías si tuvieses 4 variables y quisieses sumarlas juntas?. Podrías hacer algo como lo siguiente:

bono = 100
puntuación = 500
levelbonus = 200
luckscore = 100
puntuación = puntuación - bono - levelbonus - luckscore
PRINT puntuación

Recuerda que puedes sumar variables numéricas de cualquier manera, pero sólo estando seguro de que no son cadenas que estás sumando juntas todavía. Los siguientes ejemplos muestran otros caminos para manejar números en algún programa:

age = 21
new = 3
age = age - new
PRINT age

El programa anterior está usando el operador "-" para hacer el trabajo requerido. En nuestro lenguaje esto es llamado resta o substracción. El siguiente programa te permite ver cómo trabaja con números puede afectar al resultado final de un programa.

CLS
"manzanas = 2"
"ciruelas = 5"
"naranjas = 3"
LOCATE 2, 1
PRINT " En el almacén tenemos:" ; manzanas; "Manzanas, " ;ciruelas;
"Ciruelas, " ; naranjas; "Naranjas"
LOCATE 6, 8
PRINT "Ahora hemos vendido dos ciruelas y una naranja"
ciruelas = ciruelas - 2
naranjas = naranjas - 1
LOCATE 10, 1
PRINT "En almacén tenemos:" ; manzanas; " Manzanas," ; ciruelas; "Ciruelas," ; naranjas; "Naranjas"

Ya he explicado en tutoriales anteriores como se usan muchos de estos operadores.
= ----------> es igual a
<> ----------> no es igual a
> ----------> es mayor que
< ----------> es menor que
>= ----------> es mayor o igual que
<= ----------> es menor o igual que

Durante algún programa largo probablemente utilices alguno o más de los anteriores. Con los anteriores operadores puedes hacer operaciones sobre diferentes números. Por ejemplo tú puedes comprobar si algo es mayor o igual que. No se si lo sabrás pero en el Reino Unido hay un programa de televisión llamado "Juega bien tus cartas". En el juego del programa has de decir si la siguiente carta es mayor que la precedente. Por ejemplo supongamos que la primera carta es un 6. El concursante ha de decir si la carta es mayor o menor que la siguiente. Si el dice mayor y sale de un 7 hasta un as habrá ganado en esta ocasión. Si sale 5 o menor y el jugador que aparece en pantalla ha dicho mayor resulta que pierden. Los juegos como este serían muy fáciles de escribir, y se utilizan bastantes de lo operadores anteriores para simularlos. El de abajo es un simple juego de adivinanzas.

CLS
RANDOMIZE TIMER
número = INT(RND * 10)
DO
INPUT "Adivina el número:", adivina
IF adivina > número THEN PRINT "Es Alto"
IF adivina < número THEN PRINT "Es Bajo"
LOOP UNTIL adivina = número
PRINT "¡Has ganado!"

Oh si, ahora te lo voy a poner más difícil. Te voy a adentrar en dos nuevos comandos. El primero es "RANDOMIZE TIMER" y el otro es "INT(RND)". No te preocupes si parece un poco complicado porque realmente es muy simple. Déjame explicarte los dos comandos. "RANDOMIZE TIMER" es una forma de generar realmente números al azar. "RANDOMIZE" es un número que pone sin fórmula, sin un comando, lo pone simplemente y permite mezclar los números, cuando introduces el comando "TIMER"

los mezcla mucho más. Probablemente no usarás "RANDOMIZE" a menos que estés escribiendo un juego de números o algo de esa naturaleza.

Sin embargo "INT(RND)" es probablemente algo que usarás mucho. La parte "INT" explica que está buscando la parte entera. Ya te he explicado antes los enteros en este tutorial. Para explicarlo un poco más, un entero es un número entero y no con decimales como 4,3454. Las variables enteras son buenas a veces porque te aseguran obtener un número entero. Si omitieses la parte "INT"(parte del programa anterior, encontrarás que el comando "RND * 10" generará algún valor decimal entre 1 y 10, como 5,3. Ahí es a dónde me lleva el siguiente punto. La parte "(RND * 10)" me generará un número aleatorio entre 0 y 10. Si pongo (RND * 10)" obtendrás un número aleatorio entre 0 y 20 generado por ti. Recuerda que el número al azar generado será situado en la variable número en el programa anterior.

La comprobación rutinaria de un número es esta parte.

IF adivina > número THEN PRINT "Es Alto"
IF adivina < número THEN PRINT "Es Bajo"

La primera línea nos comprueba si el número adivinado por el usuario es mayor que el número generado al azar. Si es demasiado alto luego el programa escribirá "Es Alto". La siguiente línea de arriba es lo contrario. Está comprobando para ver si el número adivinado por el usuario es menor que el número seleccionado al azar.

En el siguiente par de tutoriales verás muchos operadores en uso, especialmente algunos que no hemos explicado todavía. En el siguiente tutorial te enseñaré algunos comandos gráficos. También puedes adornar tus propios programas para atraer al usuario. Gracias por leerme hasta ahora.


Tornar a l'índex d'aquest tutorial!



© 1995-97, etsimo WWW team