Manual de Basic Spectrum 48k. |
Capítulo 13
CondicionesResumen
Vimos en el capítulo 3 cómo una sentencia IF adopta la forma IF condición THEN
Las condiciones, entonces, eran las relaciones (= , < , > , <= , >= y <>), que comparan dos números o dos cadenas. También pueden combinar varias de ellas, con el empleo de las operaciones lógicas AND, OR y NOT. Una relación AND y otra relación es verdadera siempre que ambas relaciones sean verdaderas, por lo que podría tener una línea como: IF a$ = "sí" AND x > 0 THEN PRINT x
en la que x solamente se consigue imprimir si a$ = "sí" y x > 0. El BASIC es, en este caso, tan próximo al inglés que parece ser que no vale la pena entrar en detalles. Como en inglés, puede unir muchas relaciones con AND y, entonces, el conjunto es verdadero si lo son todas las relaciones individuales. Una relación OR (O) otra relación es verdadera siempre que una de las dos relaciones, por lo menos, sea verdadera (recuerde que sigue siendo verdadera si ambas relaciones son verdaderas; esto es algo que no siempre se implica en inglés). La relación NOT vuelve todo al revés. La relación NOT es verdadera siempre que la relación sea falsa y falsa siempre que sea verdadera. Las expresiones lógicas pueden constituirse con relaciones y las funciones AND, OR y NOT, lo mismo que las expresiones numéricas pueden formarse con números y los signos +, -, etc.; incluso puede ponerles entre paréntesis, en caso de necesidad. Tienen prioridades en la misma forma que las operaciones habituales +, -, *, / y NOT es realmente una función, con un argumento y un resultado, pero su prioridad es mucho más baja que la de otras funciones. Por consiguiente, su argumento no precisa paréntesis a no ser que contenga AND u OR (o ambas funciones). NOT a = b significa lo mismo que NOT (a = b) (y lo mismo que a <> b, por supuesto). <> es la negación de = en el sentido de que es verdadera si, y solamente, si, = es falsa. Dicho de otro modo: a <> b es lo mismo que NOT a = b
y también: NOT a <> b es lo mismo que a = b
Persuádase a sí mismo que >= y <= son las negaciones de < y de > respectivamente; por consiguiente, siempre puede prescindir de NOT en una relación cambiando la relación. Además: NOT (una primera expresión lógica AND una segunda)
es lo mismo que NOT (la primera) OR NOT (la segunda)
y NOT (una primera expresión lógica OR una segunda)
es lo mismo que NOT (la primera) AND NOT (la segunda)
Con el empleo de lo anterior, puede efectuar las funciones NOT a través de paréntesis hasta que, a la larga, estén aplicadas todas a las relaciones y, luego, puede prescindir de ellas. Hablando en términos lógicos, NOT es innecesaria, aunque pueda seguir considerando que su empleo hace más claro un programa. La siguiente sección es bastante complicada y puede pasarse por alto por los "pusilánimes". Pruebe: PRINT 1 = 2,1 <> 2
que podría esperar que diera un error de sintaxis. De hecho, en lo que respecta al ordenador, no hay nada como un valor lógico; en cambio, emplea números ordinarios, con observancia de unas pocas reglas:
Lea detenidamente el capítulo de nuevo teniendo presente lo anteriormente expuesto, cerciorándose de que todo va bien. En las expresiones x AND y, x OR y y NOT x, x e y tomarán normalmente los valores 0 y 1 para falso y verdadero. Realice las diez combinaciones diferentes (cuatro para AND, cuatro para OR y dos para NOT) y compruebe que hacen lo que el capítulo le indica que ha de esperar que hagan. Pruebe este programa:
Cada vez, imprime el más grande de los dos números a y b. Convénzase a sí mismo de que puede acordarse de x AND y
como teniendo el significado de x si y (si no, el resultado es 0)
y de x OR y
con el significado de x a no ser que y (en cuyo caso, el resultado es 1)
Una expresión con el empleo de AND o de OR como la anterior se denomina una expresión condicional. Un ejemplo con el empleo de OR podría ser: LET precio total = precio menos impuesto * (1.15 OR v$ = "calculado zero")
Observe cómo AND tiende a ir con la adición (porque su valor por defecto es 0) y OR tiende a ir con la multiplicación (porque su valor por defecto es 1). También puede elaborar expresiones condicionales valoradas de cadenas, pero solamente utilizando AND
por lo que significa x$ si y (si no, la cadena vacía). Pruebe este programa, que introduce dos cadenas y las pone en orden alfabético.
Ejercicio
|
Manual de Basic Spectrum 48k. |