Pascal/Turbo Pascal - Readln con Boolean

 
Vista:

Readln con Boolean

Publicado por Hemingway (1 intervención) el 21/01/2004 12:37:25
Soy novato por favor cuando hago lo siguiente me manda error(illegal ..):
var bl : boolean;
begin
readln(bl);
end;
que debo hacer? espero me puedan ayudar, thnx..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Readln con Boolean

Publicado por M@rceloL (152 intervenciones) el 21/01/2004 21:45:50
Bueno. No existe una forma "directa" de leer un boolean... pero yo haría algo así:

var bl:boolean;
lectura:string;

begin
readln(lectura);
bl:=(Mayusculas(lectura)='TRUE');
end;

Mayusculas es una función que pasa un string a mayúsculas, y podría ser así:

function Mayusculas(const str:string):string;
var Ind:byte;
Retorno:string;
begin
Retorno:='';
for Ind:=1 to length(str) do
Retorno:=Retorno+upcase(str[Ind]);

Mayusculas:=Retorno;
end;

Básicamente: recorremos el string (desde 1 hasta el final (función length)) y transformamos la letra en esa posición a mayúsculas y la guardamos en "Retorno" que es lo que devuelve la función. Obviamente, en la comparación, 'TRUE' podría ser 'VERDADERO' o algo similar.

Espero se entienda. Saludos y buenas compiladas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Readln con Boolean

Publicado por Bernardo L. (1 intervención) el 22/01/2004 19:08:40
A ver si tambien te sirve esto.
El tipo BOOLEAN toma valores de verdadero (TRUE) o falso (FALSE) unicamente.
Es un tipo lógico, y se puede utilizar como condiciones:
var VarBool: boolean;
...
if VarBool then
...
Aqui, si VarBool es verdadero, lo que viene despues del "then" se ejecuta, si es falso, no se ejecutará.
Para evaluar un "booleano", puedes hacerlo preguntado:
if VarBool then
o
if VarBool = TRUE then
O si quieres ejecutar algo si el "booleano" es falso:
if not VarBool then
o
if VarBool = FALSE then
Para darle valores a las variables booleanas, debes asignarselos (:=).
Ejemplo:
VarBool:=TRUE;
Bueno, como ves, no puedes utilizar el read o readln para darle valores. Utiliza "if VarChar = 'n' then VarBool:=false", o similares.
Suerte!.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar