Manual de Basic Spectrum 48k.

Capítulo 3

Decisiones

Resumen

  • IF, STOP
  • =, <, >, <=, >=, <>

Todos los programas que hemos visto hasta ahora han sido bastante predecibles (han pasado a través de las instrucciones y han vuelto al principio de nuevo). Ello no es de mucha utilidad. En la práctica el ordenador habría de tomar decisiones y actuar en consecuencia. La instrucción utilizada tiene la forma ... IF (si) algo es verdadero, o no verdadero, THEN entonces hacer algo más

Por ejemplo, utilice NEW para borrar el anterior programa del ordenador e introduzca por el teclado y ejecute el siguiente programa (que evidentemente admite que jueguen dos personas).

10 REM Adivine el numero
20 INPUT a: CLS
30 INPUT "Adivine el numero",b
40 IF b=a THEN PRINT "Correcto": STOP
50 IF b<a THEN PRINT "Demasiado bajo, pruebe de nuevo"
60 IF b>a THEN PRINT "Demasiado alto, pruebe de nuevo"
70 GO TO 30

Puede contestar que una sentencia IF adopta la forma:

IF condición THEN...

en donde "..." significa una secuencia de comandos, separados por dos puntos, en la forma habitual. La condición es algo que ha de determinar como verdadero o falso; si es verdadero, se ejecutan las sentencias en el resto de la línea después de THEN, en caso contrario, se saltan y el programa ejecuta la siguiente instrucción.

Las condiciones más sencillas comparan dos números o dos cadenas. Pueden probar si dos números son iguales o si uno es mayor que el otro y pueden probar si dos cadenas son iguales o (aproximadamente) si una está antes que la otra en el orden alfabético. Utilizan las relaciones =, <, >, <=, >=, y <>.

= significa "igual a". Aunque es el mismo símbolo que el = en un comando LET, se utiliza en un sentido bastante diferente.

< (SYMBOL SHIFT con R) significa "es menos que", por lo que:

1<2
-2<-1
-3<1

son todas relaciones verdaderas, pero

1<0
0<-2

son falsas.

La linea 40 compara a y b. Si son iguales, entonces, el programa se interrumpe con el comando STOP. El informe en la parte inferior de la pantalla 9 STOP, statement, 30:3 indica que la tercera sentencia, o comando, en la línea 30 hizo que se detuviera el programa, esto es, STOP.

La línea 50 determina si b es menor que a y la línea 60 si b es mayor que a. Si una de estas condiciones es verdadera, entonces, se imprime el comentario correspondiente y el programa sigue su camino a la línea 70 que comunica al ordenador que vuelva a la línea 30 y allí comience de nuevo.

El comando CLS, borrar pantalla, en la línea 20 era para impedir que la otra persona vea lo que está introduciendo.

El símbolo > (SYMBOL SHIFT con T) significa "es mayor que" y es lo mismo que < pero en sentido contrario. Puede recordar cuál es cuál porque el extremo aguzado apunta siempre al número que se supone que es más pequeño.

<= (SYMBOL SHIFT con Q), que no ha de teclearse < seguido por =, significa "es menor que o igual a", por lo que es que como < con la salvedad de que es verdadero incluso si los dos números son iguales; por consiguiente 2<=2 es verdadero, pero 2<2 es falso.

>= (SYMBOL SHIFT con E) significa que "es mayor que o igual a" y es análogo a >, con las salvedades antes indicadas.

<> (SYMBOL SHIFT con W) significa "distinto a", lo opuesto a =.

Los matemáticos suelen escribir <=, >= y <> en la forma , y . Escriben también cosas como '2<3<4' para significar '2<3'y '3<4', pero ello no es posible en BASIC.

Observación: En algunas versiones de BASIC, pero no en la de ZX Spectrum, la sentencia IF puede tener la forma

IF condición THEN número de línea

Ello significa lo mismo que:

IF condición THEN GO TO número de línea.

Ejercicios

1. Pruebe este programa:

10 PRINT "x": STOP: PRINT "y"

Cuando lo ejecute, el ordenador visualizará x y se parará con el informe 9 STOP statement, 10:2. Ahora, pulse:

CONTINUE

Podría esperar que se produjera un salto atrás al comando STOP (CONTINUE suele repetir la sentencia que se refiere en el informe). Sin embargo, en este caso, ello no sería de mucha utilidad, porque el ordemador volvería a detenerse sin visualizar y. Por consiguiente, todo está dispuesto para que después del informe 9 CONTINUE salte al comando después del comando STOP. Por ello, en nuestro ejemplo, después de CONTINUE, el ordenador imprime y y llega al final del programa.

Manual de Basic Spectrum 48k.