Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
vamos_acade
Nivel 3


Edad: 36
Registrado: 15 Sep 2008
Mensajes: 24

Carrera: Sistemas
argentina.gif
MensajePublicado: Mar Oct 14, 2008 10:45 am  Asunto:  como usar boolean?? Responder citandoFin de la PáginaVolver arriba

que tal, este jueves tengo el parcial de algoritmos 1 y por ahora entiendo la mayoria de los comandos pero el que no entiendo como se usa es el boolean, ¿alguien me podria dar un ejemple simple de algun programa usando boolean?
muchas gracias.


Aquario  Gato OfflineGalería Personal de vamos_acadeVer perfil de usuarioEnviar mensaje privado
Moises
Nivel 8


Edad: 35
Registrado: 26 Sep 2007
Mensajes: 727

Carrera: No especificada
israel.gif
MensajePublicado: Mar Oct 14, 2008 10:53 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Si
A ver, boolean es un tipo de dato, que puede tomar dos valores... verdadero y falso.
¿Y para que se ocupa?
Bueno, en general para tomar decisiones y ver hacia donde bifurcar.
Un ejemplito?
No me acuerdo de la sintaxis de pascal, pero... a ver..

Es medio tonto, pero viene bien
Cita:

numero:integer;
variable:boolean; (no estoy seguro si se declaraba asi...)

readl(numero)
if (numero > 10) then
variable:=true;
else
variable:=false;

if variable = true then
writeln ¡El numero es mayor que diez!
else
writeln El numero no es mayor que 10.


Okey, veamos, eso podría hacerse directamente con el if.. numero > 10 entonces.. es mayor que diez...
pero era para que lo veas aplicado...

¿Y cuando lo usas?
Depende de tu programa.... me parece que no haz hecho la guía de ejercicios Wink

_______

Otro ejemplo

Supón que tienes que recorrer un vector, y parar cuando exista un elemento mayor que diez.....
Cita:

salir_del_ciclo:boolean;

salir_del_ciclo:=false; //la inicializamos
i=0;
while ((salir_del_ciclo = false) OR( i= 100))
inc(i)
if vector[i] > 10 then salir_del_ciclo:= true;
end

if salir_del_ciclo = true then
writeln ¡Salimos antes del ciclo!
else
writeln ¡Llegamos a 100 y no salio del ciclo!

Si no sale del ciclo, eso se ejecutaría hasta que la condición de la i se cumpla
__

Otro ejemplo, seguro lo haz visto.. es una búsqueda secuencial, probablemente la implementaron con boolean


Piscis Género:Masculino Serpiente OfflineGalería Personal de MoisesVer perfil de usuarioEnviar mensaje privado
vamos_acade
Nivel 3


Edad: 36
Registrado: 15 Sep 2008
Mensajes: 24

Carrera: Sistemas
argentina.gif
MensajePublicado: Mar Oct 14, 2008 7:12 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

ok, gracias por el ejemplo.
y la guia la hice en su mayoria pero sin usar boolean.


Aquario  Gato OfflineGalería Personal de vamos_acadeVer perfil de usuarioEnviar mensaje privado
todoseapormi
Nivel 9


Edad: 36
Registrado: 18 Mar 2006
Mensajes: 2135

Carrera: Sistemas
columbia.gif
MensajePublicado: Mar Oct 14, 2008 7:13 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

no hace falta comparar un boolean, osea si haces if variable lo toma...

_________________
MLI

Geminis Género:Masculino Gato OfflineGalería Personal de todoseapormiVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN Messenger
Ni7ram
Nivel 6


Edad: 34
Registrado: 03 Mar 2007
Mensajes: 271
Ubicación: Buenos Aires, Cap Fed
Carrera: Informática
argentina.gif
MensajePublicado: Mar Oct 14, 2008 7:50 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

El boolean es útil porque ocupa un solo byte. Antes de conocer el if, yo usaba un integer y lo switcheaba de 1 a 0, cosa que esta mal porque ocupa muchísimo mas espacio que un booleano.

Mirá, no se como será en Pascal, pero en C++ es asi:

Código:
bool Variable;


entonces le podes asignar verdadero (Variable = true;) o falso (Variable = false;)

Cuando lo evaluas no hace falta poner if (Variable == true), directamente podes hacer:

Código:
if (Variable){
}


Y tambien lo podes negar para entrar al if si es falso

Código:
if (!Variable){
}


Bueno ya que tengo tiempo te dejo un programa:

Código:

//VARIABLES
bool ingeniero;
char respuesta;

//PROGRAMA
cout << "Sos ingeniero? (S) (N)";
cin   >> respuesta;

if (respuesta == 'S'){
    ingeniero = true;
}else{
    ingeniero = false;
}

if (ingeniero){
   cout << "Sip, sos ingeniero";
}else{
   cout << "Mm no, todavia te falta";
}


Como verás hay un paso de mas, porque tranquilamente podría haber tirado el mensaje por consola cuando evaluaba la respuesta del usuario en el primer if, pero no sería un ejemplo del uso de boolean. Perdon, no se me ocurrio un ejemplo mejor :P.

Ja!, deje un programa igual al que dejaron antes XD .. que poca imaginación che.


EDIT: correcciones varias




Última edición por Ni7ram el Mar Oct 14, 2008 8:25 pm, editado 5 veces
Capricornio Género:Masculino Serpiente OfflineGalería Personal de Ni7ramVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN Messenger
Moises
Nivel 8


Edad: 35
Registrado: 26 Sep 2007
Mensajes: 727

Carrera: No especificada
israel.gif
MensajePublicado: Mar Oct 14, 2008 8:07 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

¿Un solo bit?
Un byte te creo.


Piscis Género:Masculino Serpiente OfflineGalería Personal de MoisesVer perfil de usuarioEnviar mensaje privado
Ni7ram
Nivel 6


Edad: 34
Registrado: 03 Mar 2007
Mensajes: 271
Ubicación: Buenos Aires, Cap Fed
Carrera: Informática
argentina.gif
MensajePublicado: Mar Oct 14, 2008 8:12 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Si, tenes un razon, ocupa un byte. Ahora lo corrijo.


Capricornio Género:Masculino Serpiente OfflineGalería Personal de Ni7ramVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN Messenger
4WD
Administrador


Edad: 39
Registrado: 07 Sep 2006
Mensajes: 2430
Ubicación: Ingeniero
Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Oct 14, 2008 11:55 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Suele usarse como "bandera", es decir, para marcar un estado (verdadero o falso) y pasarlo entre distintas partes del programa.

Ocupa un bit (sólo dos valores posibles, 1 ó 0 = verdadero o falso) y no un byte (8 bits)!!!... Muchachos, a repasar estructuras de datos... :P

Boolean: http://en.wikipedia.org/wiki/Boolean_datatype

_________________
ImageImage
ImageImage
ImageImage

Escorpio Género:Masculino Rata OfflineGalería Personal de 4WDVer perfil de usuarioEnviar mensaje privado
Moises
Nivel 8


Edad: 35
Registrado: 26 Sep 2007
Mensajes: 727

Carrera: No especificada
israel.gif
MensajePublicado: Mie Oct 15, 2008 12:08 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

4WD escribió:
Suele usarse como "bandera", es decir, para marcar un estado (verdadero o falso) y pasarlo entre distintas partes del programa.

Ocupa un bit (sólo dos valores posibles, 1 ó 0 = verdadero o falso) y no un byte (8 bits)!!!... Muchachos, a repasar estructuras de datos... :P

Boolean: http://en.wikipedia.org/wiki/Boolean_datatype

Si, pero el tamaño en memoria es 1 byte. Los 7 bits se pierden.
(Siempre me referí al tamaño en memoria, aclaro)

Cita:
m ~/sdata_web $ cat a.cpp
#include <iostream>
int main () {

bool a;

std::cout << sizeof(a) << std::endl;
return 0;

}
m ~/sdata_web $ c++ a.cpp
m ~/sdata_web $ ./a.out
1


Piscis Género:Masculino Serpiente OfflineGalería Personal de MoisesVer perfil de usuarioEnviar mensaje privado
EpidemiaN
Nivel 7


Edad: 35
Registrado: 28 Ago 2007
Mensajes: 402

Carrera: Informática
blank.gif
MensajePublicado: Mie Oct 15, 2008 12:56 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

[OT]

Bueno, igual, creo que el estandard de C++ no impone qué tamaño debe ocupar en memoria un bool.

(de hecho, que el programa te diga que ocupa "1" byte no significa que se estén perdiendo 7 bits tampoco (1 byte puede no ser de 8 bits xD))

Cada implementación de cada lenguaje lo puede implementar como se le canta.

[/OT]

Lo que importa es que tenga sólo dos valores posibles (por eso 4DW dijo que se ocupa un bit): true y false, y que con eso se puede cambiar el flujo de un programa dependiendo del valor de un boolean.

Código:
var malaSuerte: boolean;
malaSuerte := random(1000) = 666;
if (malaSuerte) formatearDisco();

Un cacho de código (en algun lenguaje improvisado que se parece a pascal) que te formatea el disco si tenes mala suerte. Asi de grosos son los booleans!


Tauro Género:Masculino Dragón OfflineGalería Personal de EpidemiaNVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN Messenger
4WD
Administrador


Edad: 39
Registrado: 07 Sep 2006
Mensajes: 2430
Ubicación: Ingeniero
Carrera: Mecánica
argentina.gif
MensajePublicado: Mie Oct 15, 2008 1:00 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ese es oooootro tema. De hecho, el tamaño que ocupa depende de la implementación, como reza la Wikipedia.

A modo de ejemplo (burdo y bien para putear a MS... :P):
Wikipedia escribió:
In Visual Basic Boolean values from comparisons can be stored in variables with the Boolean data type, which is stored as a 16-bit signed integer, but should only have the values True(-1) and False(0).

_________________
ImageImage
ImageImage
ImageImage

Escorpio Género:Masculino Rata OfflineGalería Personal de 4WDVer perfil de usuarioEnviar mensaje privado
Moises
Nivel 8


Edad: 35
Registrado: 26 Sep 2007
Mensajes: 727

Carrera: No especificada
israel.gif
MensajePublicado: Mie Oct 15, 2008 1:15 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ajá, tienes razón.

Es simpático que se den estas discusiones de corte filosófico por una pregunta :P


Piscis Género:Masculino Serpiente OfflineGalería Personal de MoisesVer perfil de usuarioEnviar mensaje privado
Ni7ram
Nivel 6


Edad: 34
Registrado: 03 Mar 2007
Mensajes: 271
Ubicación: Buenos Aires, Cap Fed
Carrera: Informática
argentina.gif
MensajePublicado: Mie Oct 15, 2008 10:10 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Si, por eso habia dicho que ocupada un bit, pero moises me hizo dudar y es cierto lo que dice, ocupa un byte (no siempre, pero bueno). Encontre info que dice que algunos S.O. directamente no pueden escribir en un solo bit.


Capricornio Género:Masculino Serpiente OfflineGalería Personal de Ni7ramVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN Messenger
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2619s ][ Pedidos: 20 (0.1711s) ]