Pascal/Turbo Pascal - Funciones booleanas pascal

 
Vista:
sin imagen de perfil

Funciones booleanas pascal

Publicado por Juan (7 intervenciones) el 10/01/2013 23:19:56
Tengo mucho lío con las funciones booleanas.
Me han dicho que es de lo más fácil, pero no consigo cogerle el tranquillo.
No se como implementarlas bien ni como llamarlas o utilizarlas en el programa principal.
¿Alguien puede explicarme como hacerlo?
Gracias
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
sin imagen de perfil

Funciones booleanas pascal

Publicado por tugatime (44 intervenciones) el 11/01/2013 20:22:07
Mira, explicar no te se explicar bien, pero te dire una cosa.

Las funciones booleanas no se pueden hacer write/writeln ni read/readln. Sirven para decir si algo es verdadero (true) o falso (false).

Te dejo aqui un programa de ejemplo para que lo veas y lo analises (si necesitas ayuda para analizarlo me lo dices):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program FuncionBoolean;
 
var
   bandera:boolean;
   n:integer;
 
begin
     write('Introduzca un numero: ');
     readln(n);
 
     if (n mod 2=0) then
        bandera:=true
     else
         bandera:=false;
 
     if (bandera=true) then
        writeln('El numero es par.')
     else
         writeln('El numero es impar.');
 
readln;
end.


Por si tienes dudas, eso de n mod 2 es para verificar si el numero es par o no.
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

Funciones booleanas pascal

Publicado por ramon (2158 intervenciones) el 11/01/2013 21:43:56
Existen cuatro tipos booleanos predefinidos e pascal que son:
Boolean, ByteBool, WordBool, y LongBool.

type
Boolean = (False, True);
WordBool = (False, True);
LongBool = (False, True);
ByteBool = (False, True);

Estos tipos tienen los siguientes tama¤os:

- Boolean tiene un tama¤o de un byte (8 bits)
- WordBool tiene un tama¤o de una palabra (16 bits)
- LongBool tiene un tama¤o de un Longint (32 bits)
- ByteBool tiene un tama¤o de un byte (8 bits)

Dado que los booleanos son tipos ordinales
enumerados, se cumplen las siguiente
relaciones:

False < True
Ord(False) = 0
Ord(True) = 1
Succ(False) = True
Pred(True) = False

Boolean es el tipo de preferencia y utiliza la
menor cantidad de memoria; ByteBool, WordBool,
y LongBool existen principalmente para
proporcionar compatibilidad con Windows.

En una expresi¢n, estos
operadores relacionales producen resultados de
tipo Boolean.

= <> > < >= <= IN

Para compatibilidad con Windows, los booleanos
pueden asumir valores ordinales distintos de 0 y 1.

Una expresi¢n de boolena es considerada False
cuando su valor ordinal es 0, y True cuando su
valor ordinal es distinto de 0.
Operadores booleanos
Operador Operaci¢n Tipo de los operandos Tipo del resultado
not negaci¢n Booleano Boolean
and y l¢gico Booleano Boolean
or o l¢gico Booleano Boolean
xor o exclusivo Booleano Boolean

not es un operador unario.


una forma de empleo es la comparación por ejemplo de dos datos imagina

if nombre1 = nombre2 then
iguales := true
else
iguales := false;

if numero1 = numer2 then
writeln('Son iguales');
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
sin imagen de perfil

Funciones booleanas pascal

Publicado por Juan (7 intervenciones) el 12/01/2013 13:07:17
Hola:
Los ejemplos que me habéis puesto me quedan claro.
El problema que se me presenta es llamar a una función booleana en el programa principal
Gracias
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

Funciones booleanas pascal

Publicado por ramon (2158 intervenciones) el 12/01/2013 13:48:22
Mira esto es una llamada de comprobación booleana .

while not Eof(F) do
begin
Read(F, Ch);
Write(Ch);
end;

esto comprueba que la condición while not Eof(F) do se cumple esto resulta de esto
Eof(F) devuelve
True si la posición de fichero actual esta mas allá del ultimo carácter del fichero o si el
fichero no contiene datos; si no, Eof(F) devuelve False.
O tro ejemplo de llamada seria

1
2
3
4
5
6
7
8
9
10
function pulsada : boolean;
 var
     tec : char;
  begin
         tec := readkey;
   if tec = #13 then
    pulsada := true
else
    pulsada := false;
end;


esta función informara si la tecla pulsada es el carácter 13 o sea enter sera true sino
devuelve false.

como puedes apreciar tanto en la primera como en la segunda son solo informaciones
que tu en tu programa insertas o que algunas funciones de pascal devuelven al
ejecutarlas como es el caso de Eof, mientras que lo otro lo establecemos nosotros
al hacer la comprobación en este caso de si se pulso la tecla adecuada.
espero esto te ayude algo.
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