Las operaciones booleanas son fundamentales para tomar decisiones dentro de cualquier programa. En C++, estas operaciones permiten evaluar expresiones y compararlas para decidir el flujo de ejecución del programa. Las principales operaciones booleanas son:
AND (&&): Evalúa si ambas expresiones son verdaderas. Retorna true solo si ambas son verdaderas.
OR (||): Evalúa si al menos una de las expresiones es verdadera. Retorna true si alguna lo es.
NOT (!): Invierte el valor lógico de la expresión a la derecha del operador.
Veamos un ejemplo práctico de cómo se utilizan estas operaciones:
¿Cómo se utilizan las condicionales if, else y else if en C++?
Las sentencias condicionales permiten ejecutar diferentes bloques de código según una o varias condiciones. Una de las formas más empleadas para controlar flujo con condiciones es el uso de if, else y else if.
Uso del if
La sentencia if ejecuta un bloque de código si la condición entre paréntesis evalúa a verdadero. Aquí hay un ejemplo simple:
int edad =20;if(edad >=18){ std::cout <<"Puedes votar."<< std::endl;}
Uso del else
La sentencia else se utiliza para especificar un bloque de código que se ejecutará si la condición if es falsa.
¿Cuál es la mejor manera de estructurar las condicionales?
Al desarrollar programas, es crucial escribir código claro y eficiente. Utilizar else if es una manera de evitar anidar múltiples if, lo que mejora la legibilidad y mantenimiento del código. Aquí te damos algunas recomendaciones:
Prefiere else if para múltiples verificaciones de una misma variable.
Utiliza operaciones booleanas para combinar condiciones y simplificar tu lógica.
Valida primero las condiciones que permitirán filtrar casos obvios antes de pasar a condiciones más restrictivas.
En el contexto de una aplicación para verificar la elegibilidad de un votante, la solución puede optimizarse aún más utilizando operadores lógicos combinados con condicionales, evitando así complejidades innecesarias.
Te dejo un reto: Reescribe la lógica de validación del ejemplo anterior utilizando operaciones combinadas con el operador or para lograr un código más compacto y legible. ¡Sigue practicando y mejorando tu habilidad en programación!
Acá les dejo este valioso recurso para los que están haciendo operaciones entre operadores lógicos, la tabla de la verdad. Es muy útil para saber el posible resultado.
!File:Truth table for AND, OR, and NOT.png - Wikimedia Commons
La bella tabla de Verdad. Muy util para quienes estan empezando <3 .
1 = Verdadero
0 = Falso
gracias!! :D
Reto de la clase:
#include<iostream>using namespace std;// int variable.int age;intmain(){// The program asks for the user's age. cout <<"Please, enter your age: ";// User's age is saved in the variable. cin >> age;/* If the user's age is less than 18,
he can't vote or if the user's age is
greater than 40, he can't vote neither. */if( age <18|| age >40){ cout <<"You can't vote"<< endl;}else{ cout <<"You can vote!"<< endl;}}
Muy bueno!
Creo que hay un error en la definición del operador lógico AND. Ella dice que si alguno de los dos lados es true, sin importar si el otro es false, dará true. No es cierta esta afirmación ya que según la definición general es que solo dará true si los dos operandos son true.
uno True sera True con OR, para AND debe ser todo True
Así es, para que un AND sea true ambas tienen que ser true, si no pasa a ser False, bien visto y gracias por el feedback.
El código quedaría también usando rangos, usando el ejemplo de la edad quedaría así:
if((edad >17)&&(edad <48)){printf("puede votar y ser votado(a)\n");}else{printf("NO puede votar y NI ser votado(a)\n");}
estas utilizando C, cierto?
Hola @sebas_kerloc
No es C, o tal vez si, lo puse en el código porque se que funciona, ademas soy de la escuela donde se usa mas printf que cout << jejejeje,
#include<iostream>usingnamespace std;intmain(){int age; cout <<"Enter your age: "<< endl; cin >> age;if(age >=18&& age <=60){ cout <<"You can vote."<< endl;}else{ cout <<"You can't vote."<< endl;}}
Instrucción goto para poder volver a pedir la edad si no es mayor de edad
El operador AND (&&) en C++ evalúa dos condiciones y devuelve verdadero solo si ambas son verdaderas. Si alguno de los lados es falso, el resultado es falso. Por otro lado, el operador OR (||) devuelve verdadero si al menos uno de sus operandos es verdadero; solo devuelve falso si ambos lados son falsos. Esta lógica es fundamental para dirigir el flujo de control en tus programas, como se mencionó en la clase sobre condicionales.
¿Cómo puedo usar acentos en el cout?
Eso depende del tipo de dato y el compilador, por ejemplo, GCC/G++ soporta por defecto caractéres UTF-8 en los string, por lo que simplemente tienes que escribir el caractér cómo cualquier cadena de texto.
Por otro lado, el tipo char por estandar de C/C++ solamente puede ser un valor en la tabla ASCII, ya que solo se almacena en un byte, los caractéres Unicode requieren 4 bytes.
Esto es así porque C++ se puede utilizar en diferentes hardware, desde microcontroladores de 8 bits hasta super computadoras y mainframes, entonces, en C/C++ el tamaño en bytes de cada variable debe estar bien definido para que el compilador sepa en qué máquinas corre y en cuáles no, de lo contrario podría haber bugs importantes por perder bits o mal interpretarlos, y C/C++ se usan en sistemas críticos, cómo cohetes, máquinas médicas, sistemas financieros, etc..
Por eso los compiladores más completos suelen tener más tipos de datos, indicando el tamaño en bytes y otros detalles de cada variante: char, wchar_t, char8_t, char16_t, and char32_.
Pero este curso es introductorio, tal vez más adelante pueda explicar más sobre ese tema.
Reto cumplido
#include <iostream>using namespace std;int main(){ int edad=0; cout<<"cual es tu edad? "; cin>>edad;if(edad <18 or edad >40){ cout<<"No puedes votar";}else{ cout<<"puedes votar";}}
creo que platzi debería de sacar unos cursos de lógica proposicional, creo que es importante saber qu es disyunción, conjunción, codicional, etc.
if(age >=18&& age <=40){ cout <<"You can vote";}else{ cout <<"You can't vote";}
me encanto como aprendes dos cosas a la ,buen aporte
muy bueno!
CÓDIGO DE LA CLASE
#include <iostream>using namespace std;//CONDICIONALESint main(){//OPERACIONES LÓGICAS bool result =false&&true;//Operacdor AND && bool result2 =true||true;//Operador OR || bool result3 =!false;//Operador NOT != o depende del caso se puede usar =! cout << result <<", "<< result2 <<", "<< result3 <<"\n\n\n\n";//CONDICIONAL IF//Caso si tienes la edad para votar minimo 18 maximo 40 años int age =0;//inicializar en 0 cout <<"Ingresa tu edad: "; cin >> age;//para pedir al usuario su edad//Validaciones if(age <18){ cout <<"No puedes votar :C";}elseif(age >40){ cout <<"No puedes votar :C";}else{ cout <<"Puedes votar C:";}}
Creo que usando solo && también podíamos conseguir algo bueno
#include <iostream>using namespace std;int main(){ int age; cout <<"Ingresa tu edad: "<< endl; cin >> age;if(age >=18&& age <=40){ cout <<"Puedes votar"<< endl;}else{ cout <<"No puedes votar "<< endl;}}
Muy bueno!
Codigo del reto
#include <iostream>// obtener datos de entrada o de salidausing namespace std;//te permite utilizar, en el código, //nombres estandar de c++, para poder importarlas //sin necesidad de escribir desde donde la estamos importandoint main(){ int edad =0; cout <<"edad: "; cin >> edad;if(edad <=18|| edad >=40){ cout <<"No puedes votar";}else{ cout <<"Puedes votar";}}
mi desafio
<#include <iostream>using namespace std;int main(){ int edad =0; cout <<"introduce tu edad"; cin >> edad;if( edad >=18|| edad <=100){ cout <<"Bienvenido a la votacion";}else{ cout <<"Usted no tiene la edad para votar";}}>
Yo lo hice con AND (&&)
int age =0; cout <<"Ingresa tu Edad: "; cin >> age;if(age >=18&& age <=40){ cout <<"Puedes Votar"<<endl;}else{ cout <<"No puedes Votar"<<endl;}
Mi solución al reto. Vamos con todo, que podremos llegar a realizar los juegos que queremos!!
//Using && = andif(age >18&& age <40){ cout <<"You can vote";}else{ cout <<"You can't vote";}//Using || = orif(age <18|| age >40){ cout <<"You can't vote";}else{ cout <<"You can vote";}
Hay un error de ragon en el code que has escrito, porque cuando usas el condicional && permitia que solo una persona mayor a 18 años pueda votar, o sea que una persona de 18 no podrá votar y asi mismo para una persona de 40 años, el rango dirá que puede vorar desde 39 hacia abajo. Por lo tanto debes usar :
<code> age >=18
y de esa manera una persona de 18 años podrá votar y los mismo para la de 40 años. O también podrías disminuir el rango:
<code> age >17
y de esa forma ya una persona de 18 años podrá votar e igualmente para la de 40 años.
Buena apreciación y es algo que en verdad noto, muchas personas cometen error. Se soluciona practicando mucho y claramente cometiendo la falla jejeje.
Tambien pueden hacer uso del operador ternario(?) como en C
#include <iostream>using namespace std;int main(int argc, char const*argv[]){ string name; int age; cout <<"Enter your name: "; cin >> name; cout <<"Hello "<< name <<", please enter your age: "; cin >> age; string enter = age >=18?"you can enter":"less than 18"; cout << enter;return0;}
#include <iostream>using namespace std;int main(){ int age =0; cout <<"Age: "; cin >> age;if(age >=18&& age <50){ cout <<"Puedes votas";}elseif(age <18|| age >=50){ cout <<"No puedes votas";}else{ cout <<"Ingresa una edad valida";}}