Entendido.

Este sitio utiliza cookies para analizar la navegación.Si continúa navegando se entiende que acepta su uso. Ver más detalles.

Logo

Aprende Web C++

Aprende a programar en C++ con Aprende-Web

Nociones Básicas

programación en C++ desde cero.


Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net



Sobre ésta página

Ültima modificación: 13-07-2018.

Visitas este mes: 474

Visitas el mes pasado: 662

logo
WEB-GRAFÍA

Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de los manuales.:

cplusplus.com
Sitio oficial de C++: Informacion, Referencias, Tutorial, Foro. (En inglés)
Minidosis.org
Curso de C++ con videos y lecturas.
conclase.net
Curso de C++
programar ya
Curso de C++ desde cero
cprogramming.com
C++ Tutorial (inglés).
Entorno de desarrollo integrado
fergarciac.wordpress.com
Compiladores, intérpretes y Máquinas virtuales.
latecladeescape.com
el hacker.net
Programación
Desarrollo web
Manual de iniciación a la programación.

En los distintos manuales incluimosm más webgrafía especifica de cada sección.


Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.





3. Operadores

3.3. Lógicos

Definicion

Logo C++ Basico

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.

Operador AND

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.


Operador OR

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.


Operador NOT

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.


Operador XOR

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.


Operador condicional ternario

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".


Programa con operadores lógicos

Vamos a hacer un programa en el que vemos cómo funcionan los operadores lógicos. El programa es el siguiente:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#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;
}

operaciones logicas

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.

Condicionales y lógicos



Manual Básico de C++

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com