programación en C++ desde cero.
y entérate de las novedades o deja un comentario.
Ültima modificación: 13-07-2018.
Visitas este mes: 474
Visitas el mes pasado: 662
Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de los manuales.:
En los distintos manuales incluimosm más webgrafía especifica de cada sección.
Si este sitio te parece interesante puedes contribuir con una pequeña aportación.
Una operación lógica utiliza como operandos datos booleanos. La mayoría de ellas compara dos expresiones o datos booleanos y indica una posibilidad de lo que puede ocurrir cuando se juntan. El resultado es otra expresión booleana.
En la página anterior hemos visto las operaciones condicionales, las cuales daban como resultado expresiones booleanas. Por lo tanto también podemos poner como operandos de las operaciones lógicas el resultado de una operación condicional. Es decir, cada uno de los operandos es una operación condicional, la cual se realiza en primer lugar, para después realizar las operación lógica.
Sin embrgo entenderemos esto más facilmente cuando veamos cuáles son las operaciones lógicas.
Esta operación compara dos datos booleanos, de manera que el resultado será "true" (verdadero) solamente si los dos operandos son "true" (verdadero); en los demás casos el resultado será "false" (falso).
El signo para realizar la operacion es && (doble signo ampersand) pero también podemos poner la palabra and. Por ejemplo, declaramos las siguientes variables booleanas.bool v1=true, v2=true, f1=false, f2=false, r;
Las variables que tenemos inicializadas las utilizaremos como operandos, mientras que la variable r, sin inicializar, será donde obtengamos el resultado, operamos así:
r = v1 && v2;
El resultado será true. La misma operación la podemos escribir así:
r = v1 and v2;
Aunque es preferible ponerlo como en el primer ejemplo.
Los posibles valores que puede tener el resultado son los siguientes:
r = v1 && v2; // r: true
r = v1 && f1; // r: false
r = f1 && v1; // r: false
r = f1 && f2; // r: false
Aquí el resultado sólo es verdadero si los dos operandos son verdaderos.
Este operador compara dos datos booleanos, de manera que el resultado será "false" (falso) solamente si los dos operadores son falsos; en los demás casos el resultado es "true" (verdadero).
El signo para realizar la operación consiste en la doble barra vertical || (en la mayoría de los teclados se escribe con las teclas "Alt Gr" + 1). También tenemos lam opción de escribir la palabra or entre los operandos.
Los posibles valores que puede tener el resultado son los siguientes: (utilizaremos aquí las mismas variables que en el ejemplo con and)
r = v1 || v2; // r: true
r = v1 || f1; // r: true
r = f1 || v1; // r: true
r = f1 || f2; // r: false
Aquí el resultado sólo es falso si los dos operandos son falsos.
Este es un operador unario, es decir se aplica a un sólo elemento que será un dato booleano, y lo que hace es cambiarlo de valor. De maera que si el dato es verdadero el resultado es falso, y si el dato es falso, el resultado es veradero.
El operando es un signo de admiración puesto delante del dato o variable que contiene el dato. Siguiendo con las mismas variables de ejemplos anteriores.r = !v1; // r: false
r = !f1; // r: true
Aquí el resultado siempre es el contrario del que tenemos al principio.
Este operador compara dos variables booleanas, y devuelve true cuando una de las dos es verdadera true y la otra falsa false. Cuando las dos son verdaderas, o las dos son falsas devuelve false.
El signo del operador es el acento circunflejo ^ , aunque también podemos escribir la palabra xor entre los dos operandos (El acento circunflejo lo escribimos con mayúscula + acento grave, y después la barra espaciadora).
Los posibles valores que puede tener el resultado son los siguientes: (utilizaremos aquí las mismas variables que en ejemplos anteriores)
r = v1 xor v2; // r: false
r = v1 xor f1; // r: true
r = f1 xor v1; // r: true
r = f1 xor f2; // r: false
Aquí el resultado es falso cuando los dos operandos son iguales, y verdadero cuando son contrarios.
Este operador utiliza tres operandos, el primero es siempre un dato o expresión booleana. El segundo y el tercero pueden ser datos de cualquier otro tipo, siempre que los dos sean del mismo tipo. Supongamos que declaramos las siguientes variables:
bool tr=true, fs=false;
string vr="verdad", mt="mentira", resultado;
Ahora utilizamos el operador condicional ternario. Lo escribiremos así:
resultado = tr ? vr : mt;
El primer operando es tr que es un booleano, el segundo y el tercero aquí son strings, pero pueden ser datos de cualquier otro tipo, siempre que los dos sean del mismo tipo. El resultado será el segundo operando siempre que el booleano del primero sea true, y el tercero cuando el booleano sea false. En el ejemplo anterior recogemos el resultado en la variable resultado.
Si seguimos el ejemplo anterior, se puede comprobar mostrando el resultado en pantalla:
cout << resultado << endl;
El resultado al compilar y ejecutar, dará la palabra "verdad". Si cambiamos el primer operando (variable tr) por la variable fs, veremos que el resultado es la palabra "mentira".
Vamos a hacer un programa en el que vemos cómo funcionan los operadores lógicos. El programa es el siguiente:
#include<iostream> using namespace std; int main() { bool p, s; cout << "OPERADORES LOGICOS" << endl; cout << "Escribe un primer booleano ( 0 - 1) : "; cin >> p; cout << "Escribe un segundo booleano ( 0 - 1) : "; cin >> s; cout << "Tus operandos : p = " << p << " : s = " << s << endl; cout << "OPERACIONES : " << endl << endl; cout << p << " and " << s << " : " << (p and s) << endl; cout << p << " or " << s << " : " << (p or s) << endl; cout << p << " xor " << s << " : " << (p xor s) << endl; cout << "NOT_primero : " << !p << endl; cout << "NOT_segundo : " << !s << endl; string v="Verdadero", f="falso"; cout << "Primer operando : " << (p?v:f) << endl; cout << "Segundo operando : " << (s?v:f) << endl; }
Al compilar y ejecutar el programa, éste se abre y pide al usuario que introduzca dos booleanos. Éste escribe los booleanos en forma de 0 ó 1, y después se realizan las operaciones lógicas con los mismos.
Observa en el código fuente cómo realizamos las operaciones "and", "or", "xor" y "not", y luego utilizamos el operador condicional ternario para indicar si los operandos son verdaderos o falsos.
El uso de paréntesis es necesario para delimitar las operaciones, de manera que así se indica que ésta es un todo del cual se debe mostrar el resultado.
En la siguiente página seguimos viendo los operadores lógicos y su relacion con los operadores condicionales.
Sugerencias:
aprendeweb@aprende-web.net. Envia un
Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog
Más sobre anyelguti en http://anyelguti.16mb.com