2.2. Variables booleanas
Curso: Programación en Pascal (v5), por Nacho Cabanes
2.2. Variables booleanas
Una variable "Boolean" (llamadas así en honor al matemático George Boole) es una variable lógica, que puede valer TRUE (verdadero) o FALSE (falso), y se pueden usar para hacer que las condiciones resulten más legibles:
(* IF5.PAS, "if" y booleanos *) (* Parte de CUPAS5, por Nacho Cabanes *) program if5; var numero: integer; esPositivo: boolean; begin writeLn('Escriba un numero'); readLn(numero); esPositivo := numero>0; if esPositivo then writeLn('El numero es positivo'); end. (* Ejemplo de ejecucion: Escriba un numero 2 El numero es positivo *)
Ejercicio propuesto 2.2.1: Crea un programa que cree una variable de tipo boolean, le asigne el valor TRUE y luego muestre dicho valor en pantalla.
Ejercicio propuesto 2.2.2: Crea un programa que pida al usuario un número real y diga si es cero o no, usando una variable boolean.
Ejercicio propuesto 2.2.3: Crea un programa que pida al usuario un número entero y diga si es positivo, negativo o cero, usando dos variables boolean (esPositivo y esNegativo).
Ejercicio propuesto 2.2.4: Crea un programa que pida al usuario un número entero y diga si es positivo, negativo o cero, usando tres variables boolean (esPositivo, esNegativo y esCero).
2.3. Muchos posibles valores (case)
Cuando queremos comprobar entre varios posibles valores, podemos hacerlo con muchos "if" seguidos, pero puede resultar pesado y hacer que el programa sea poco legible. Hay una alternativa que resulta mucho más cómoda en esas ocasiones: la orden case. Su sintaxis es
case expresion of caso1: sentencia1; caso2:/span> sentencia2; ... casoN: sentenciaN; end;
o bien, si queremos indicar también lo que se debe hacer si no coincide con ninguno de los valores que hemos enumerado, añadimos la cláusula opcional else:
case expresion of caso1: sentencia1; caso2: sentencia2; ... casoN: sentenciaN; else otraSentencia; end;
(Nota: Esta es la sintaxis empleada por Turbo Pascal y Free Pascal. En Pascal estándar, esta construcción se empleaba con otherwise en lugar de "else" para expresar "en caso contrario".
Veamos un ejemplo:
(* CASE1.PAS, Condiciones múltiples con "case" *) (* Parte de CUPAS5, por Nacho Cabanes *) program case1; var letra: char; begin WriteLn('Escriba un simbolo'); ReadLn(letra); case letra of ' ': WriteLn('Un espacio'); 'A'..'Z', 'a'..'z': WriteLn('Una letra'); '0'..'9': WriteLn('Un digito'); '+', '-', '*', '/': WriteLn('Un operador'); else { otherwise en SURPAS y otros compiladores } WriteLn('No es espacio, ni letra, ni digito, ni operador'); end; end. (* Ejemplo de ejecucion: Escriba un simbolo a Una letra *)
Una precaución: la "expresión" debe pertenecer a un tipo de datos con un número finito de elementos, como "integer" o "char", pero no "real".
Y como se ve en el ejemplo, los "casos" posibles pueden ser valores únicos, varios valores separados por comas, o un rango de valores separados por .. (como los puntos suspensivos, pero sólo dos).
Ejercicio propuesto 2.3.1: Crea un programa que pida al usuario un símbolo y diga si es una letra en mayúsculas, una letra en minúsculas o algún otro símbolo.
Ejercicio propuesto 2.3.2: Crea un programa que pida al usuario una letra y diga si es una vocal o una consonante.
Ejercicio propuesto 2.3.3: Crea un programa que pida al usuario un número entero del 1 al 3, y escriba en pantalla "Uno", "Dos", "Tres" o "Número incorrecto" según corresponda.
Ejercicio propuesto 2.3.4: Crea un programa que pida al usuario un número, una operación (+, -, * o /) y otro número, y muestre el resultado de aplicar esa operación a esos dos números.
Actualizado el: 20-07-2014 12:05