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: 66
Visitas el mes pasado: 68
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.
Hemos visto en la página anterior los operadores lógicos, que operan con variables o datos de tipo booleano. En principio puede parecer que ésto no tiene mucha utilidad, ya que las variables booleanas sólo pueden tener dos datos distintos (verdadero o falso).
También hemos visto los operadores condicionales, que hacen una comparación entre dos datos y determinan relación que existe entre ellos, dando un resultado de tipo booleano.
Si utilizamos los resultados de las operaciones condicionales como los datos base para hacer las operaciones lógicas, entonces las operaciones condicionales se amplían, ya que pueden comparar más de dos elementos y de distintas maneras.
Uno de las tareas más habituales que pueden hacerse con los operadores condicionales y lógicos, es delimitar el valor que hay que darle a un número, lo veremos mejor con un ejemplo:
por ejemplo, queremos saber si un número que hemos pedido a un usuario está entre el 10 y el 20. Para ello primero le pedimos un número:
int n; cout << "Escribe un número entre 10 y 20"; cin >> n;
En estas instrucciones, primero declaramos una variable entera, Le indicamos al usuario lo que debe hacer, y después recogemos el número que el usuario escribe en la variable.
Ahora comprobamos si el número que ha escrito el usuario está entre los valores que le hemos pedido.
bool r = n>=10 && n<=20;
La variable r será verdadera sólo si n es mayor o igual a 10 y además es menor o igual a 20, con lo cual comprobamos si el valor escrito por el usuario es el que le hemos pedido.
El siguiente paso es mostrar en pantalla si el usuario lo ha escrito bien o no el número. Pra ello utilizaremos el operador condicional ternario, pero antes tenemos que declarar las variables que muestren los posibles resultados.
string v="BIEN", f="MAL";
cout << "Tu numero esta " << (r?v:f) << " escrito." << endl;
Tras declarar las variables que pueden mostrar los resultados, mediante el operador terciario, (r?v:f) mostramos en pantalla si el usuario ha escrito "bien" o "mal" lo que le hemos pedido.
El programa completo será el siguiente.
#include<iostream> using namespace std; int main(){ int n; cout << "Escribe un numero del 10 al 20 : " ; cin >>n; bool r = n>=10 && n<=20; string v="BIEN", f="MAL"; cout << "Tu numero esta " << (r?v:f) << " escrito." << endl; }
Tras compilar y ejecutar el programa anterior verems un resultado parecido al que tenemos aquí a la derecha. El programa pide al usuario un número entre el 10 y el 20, y luego le dice si lo ha escrito bien o mal.
Otra de las tareas más habituales que suelen hacerse con este tipo de operadores es comprobar si dos variables son iguales. En el siguiente programa pedimos al usuario que escriba una contraseña y luego la repita. Nosotros comprobaremos si las dos contraseñas escritas son iguales, y le diremos si están bien o mal escritas.
El prodecimiento es similar al usado en el programa anterior. Veamos el código fuente:
#include<iostream> using namespace std; int main (){ string c1, c2; cout << "Escribe una contrasenya : "; cin >> c1; cout << "Repite la contrasenya : "; cin >> c2; string v="SI", f="NO"; cout << endl << ((c1==c2)?v:f) << " Coinciden." << endl; }
Tras compilar y ejecutar este programa veremos que el programa pide al usuario que escriba una palabra y que después la repita. El programa dirá después si las dos palabras que ha escrito el usuario coinciden o no.
En este último ejemplo pedimos al usuario que escriba una vocal minúscula, y nosotros comprobaremos en el programa que lo que ha escrito el usuario es efectivamente una vocal minúscula.
El programa es sencillo y lo escribimos así:
#include<iostream> using namespace std; int main() { char c; cout << "Escribe una vocal (minuscula): "; cin >> c; string v="BIEN", f="MAL", resp; resp =(c=='a' or c=='e' or c=='i' or c=='o' or c=='u')?v:f; cout << resp << endl; }
Tras compilar y ejecutar el programa, éste se bre y le pide al usuario que escriba una vocal. Nos muestra luego si el usuario lo ha hecho bien o mal.
La clave la tenemos aquí en la línea 9, que nos realiza todas las operaciones:
resp =(c=='a' or c=='e' or c=='i' or c=='o' or c=='u')?v:f;
Dentro del paréntesis realizamos una serie de operaciones condicionales, para comprobar si el usuario ha escrito una vocal. Estas operaciones están unidas por el operador "or". Observa cómo se puede encadenar más de un operador or, para comprobar varias opciones.
El paréntesis da como respuesta un dato booleano, que será verdadero sólo si el usuario ha escrito una vocal. De ahí que lo usamos como primer operando del operador condicional terciario.
De la misma manera que aquí se han concatenado varios operadores or, se puede hacer lo mismo con los operadores and y xor.
También podemos combinar varios de estos operadores en una expresión, en este caso debemos marcar las prioridades mediante paréntesis, de manera que se operará primero dentro de los paréntesis, para operar luego con los resultados, fuera de los paréntesis.
Un ejemplo de esto último será por ejemplo, comprobar si un caracter es una letra (tanto mayúscula como minúscula) o no. El programa es similar al del ejercicio anterior, pero aquí combinamos los operadores and y or para obtener las dos franjas en las que están los caracteres de las letras:
#include<iostream> using namespace std; int main() { char c; cout << "Escribe una letra: "; cin >> c; string v="BIEN", f="MAL", resp; resp =( (c>='A' and c<='Z') or (c>='a' and c<='z') ) ?v:f; cout << resp << endl; }
Tras compilar y ejecutar el programa, vemos que este es muy similar al anterior, sólo que lo que aquí se comprueba es que el usuario haya escrito una letra y no otro caracter.
Todo este tipo de comprobaciones que se hacen con los operadores condicionales y lógicos pueden servir para algo más que para sacar el resultado en pantalla. Tal como veremos en el tema de "Condicionales", pueden servir también para decidir si el programa realiza una u otra acción dependiendo de si el resultado es verdadero o falso.
En la siguiente página veremos otro tipo de operadores, o de elementos que son considerados como tales.
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