Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Duda con booleanos

Estas en el tema de Duda con booleanos en el foro de C/C++ en Foros del Web. Estoy aprendiendo c++ por mi cuenta y tengo una duda con los boleanos intento hacer el programa "Fizz Buzz." y lo hice el problema es ...
  #1 (permalink)  
Antiguo 12/10/2015, 12:40
 
Fecha de Ingreso: octubre-2015
Mensajes: 17
Antigüedad: 8 años, 6 meses
Puntos: 0
Duda con booleanos

Estoy aprendiendo c++ por mi cuenta y tengo una duda con los boleanos intento hacer el programa "Fizz Buzz." y lo hice el problema es que quiero poner un boleano en una concidion if pero si lo hago el programa no funciona como deveria alguna idea de por que pasa esto?

cout<<endl<<"Fizz Buzz."<<endl<<endl;

int ite = 1;
bool fizz = (((ite % 3) != 0 or (ite % 5) != 0) && ((ite % 3) != 0 && (ite % 5) != 0));

while (ite < 100){

if (fizz){

cout<<ite;

}else if((ite % 3) == 0 && (ite % 5) == 0){

cout<<"FizzBuzz";

}else if((ite % 3) == 0){

cout<<"Fizz";

}else if((ite % 5) == 0){

cout<<"Buzz";

}if(ite < 99){
cout<<",";
}
cout<<" ";
ite = ite +1;
}
cout << endl;

cout<<endl<<".................................."<< endl<<endl;

si pongo lo que contiene el booleano directamente en el if si funciona pero quiero saber por que no funciona con el booleano , desde ya gracias.
  #2 (permalink)  
Antiguo 12/10/2015, 14:37
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Duda con booleanos

Pues no conozco ese juego o lo que sea pero te puedo decir que "or" no existe, se pone "||".
  #3 (permalink)  
Antiguo 12/10/2015, 16:01
 
Fecha de Ingreso: octubre-2015
Mensajes: 17
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Duda con booleanos

No es un juego es un ejercicio y en c++ se puede poner "||" o "or" que es exactamente lo mismo como el "and" o "&&" o "!" o "not"
  #4 (permalink)  
Antiguo 13/10/2015, 01:13
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Duda con booleanos

Cita:
Iniciado por ekis182 Ver Mensaje
No es un juego es un ejercicio y en c++ se puede poner "||" o "or" que es exactamente lo mismo como el "and" o "&&" o "!" o "not"
Cierto a medias. Acostúmbrate a no usar AND, OR, NOT y compañía. En el último estándar de C++ están marcados como DEPRECATED, por lo que es algo que tiene fecha de caducidad.

Con respecto a tu problema:

Código C:
Ver original
  1. bool fizz = (((ite % 3) != 0 or (ite % 5) != 0) && ((ite % 3) != 0 && (ite % 5) != 0));

fizz será cierto si
  • ite NO es múltiplo de 3, ite NO es múltiplo de 3 e ite NO es múltiplo de 5
  • ite NO es múltiplo de 5, ite NO es múltiplo de 3 e ite NO es múltiplo de 5
Como puedes notar ese chequeo es un poco raro... ya que al final se podría resumir en:

Código C:
Ver original
  1. bool fizz = ((ite % 3) != 0 && (ite % 5) != 0);

Además, a fizz le asignas el valor FUERA del bucle, por lo que su valor no va a cambiar por más veces que modifiques el valor de ite dentro del bucle.

Un saludo.
  #5 (permalink)  
Antiguo 13/10/2015, 12:49
 
Fecha de Ingreso: octubre-2015
Mensajes: 17
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Duda con booleanos

Si efectivamente el problema era que el booleano no estaba dentro del bucle y optimize la variable ya que es vedad tenia repetido una parte innecesaria gracias por el consejo

Etiquetas: funcion, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:42.