Operadores Relacionales y Operadores Lógicos
En el artículo anterior, vimos cómo utilizar las instrucciones SI y CASO para realizar la toma de decisiones en LPP. En este artículo, vamos a profundizar en el uso de operadores lógicos y relacionales, utilizando el siguiente ejercicio como ejemplo:
Ejercicio a resolver
Para ingresar a un evento existen cuatro puertas, por cada puerta entran personas con ciertas características:
NOTA IMPORTANTE: Las personas menores de edad (es decir menores de 18 años) no pueden ingresar al evento.
Además, a todas las personas al final del programa se les debe presentar un mensaje diciendo: «Gracias por su Visita» menos a las personas de 18 años, a ellas no se les debe presentar el mensaje.
Material Audiovisual
Te recomiendo ver el siguiente video tutorial. En este video, se explica de forma práctica como resolver el ejercicio propuesto, utilizando operadores lógicos y relacionales:
Amigo! Recuerda ver estos vídeos en PANTALLA COMPLETA y preferiblemente en formato HD para ver correctamente los detalles, Gracias.
Código Fuente
En el siguiente link podrás descargar el código de los ejemplos vistos en el vídeo.
Operadores Relacionales
Los operadores relacionales son los que nos permiten comparar dos expresiones y determinar si son iguales, mayores, menores, etc. Los operadores relacionales que se utilizan en LPP y en la mayoría de los lenguajes de programación son los siguientes:
Operadores Lógicos
Los operadores lógicos son herramientas en programación que permiten combinar o comparar condiciones, son como conectores que nos ayudan a construir reglas más complejas para controlar el flujo de un programa. Los operadores lógicos más comunes son dos:
Solucionando el Ejercicio
Veamos cómo se aplica esta teoría, resolviendo el ejercicio propuesto al iniciar este artículo. Cuando nos enfrentamos a problemas complejos en programación lo mejor es ir resolviendo cada parte del problema por separado, esto se llama descomponer o segmentar.
Recuerda, en programación siempre existen muchas soluciones a un problema, intenta solucionar el ejercicio por ti mismo, luego puedes comparar tu solución con la propuesta en este artículo.
Puerta 1
Según el enunciado del ejercicio, en esta puerta solo ingresan los hombres menores de 26 años, pero debemos tener en cuenta que al evento no pueden entrar personas menores de edad (que tengan menos de 18 años). Aquí detectamos las siguientes condiciones.
Puerta 2
Según el enunciado del ejercicio, en esta puerta pueden ingresar los demás hombres, deducimos que son los que tienen 26 o más años. Aquí detectamos las siguientes condiciones.
Puerta 3
Según el enunciado del ejercicio, en esta puerta pueden ingresar solo mujeres, que sean mayores de edad, pero menores de 26 años o también entran las mujeres mayores de 45 años. Aquí detectamos las siguientes condiciones.
Puerta 4
Según el enunciado del ejercicio, en esta puerta pueden ingresar las demás mujeres, deducimos que son las mujeres que tienen entre 26 y 45 años. Aquí detectamos las siguientes condiciones.
En este punto hemos separado cada problema, y tenemos un panorama más claro de las expresiones y comparaciones que debemos aplicar, ahora si podemos empezar a codificar.
Codificando…
En el siguiente código agrupamos los procesos asociados a las puertas por donde entran hombres.
Si (genero = 'H') Entonces
Si (edad >= 18) y (edad < 26) Entonces
escriba "Se abre la puerta 1."
Sino
Si (edad >= 26) Entonces
escriba "Se abre la puerta 2."
Sino
escriba "Usted no puede ingresar al evento."
Fin Si
Fin Si
Fin Si
Si (genero = 'H')
: Si el género es ‘H’ (Hombre) ingresamos al condicional y ejecutamos las instrucciones que encontramos adentro, de lo contrario no hace nada más.Si (edad >= 18) y (edad < 26)
: si la edad del hombre está entre 18 y 25 entonces se muestra en pantalla el mensaje «Se abre la puerta 1.»
Sino se cumplió la condición anterior, validamos Si (edad >= 26)
: Si edad es mayor o igual a 26, es decir el hombre tiene 26 años o más entonces mostramos el mensaje «Se abre la puerta 2.»
Nuevamente Sino se cumplió la condición anterior entonces definitivamente el hombre no puede ingresar al evento, por lo tanto, mostramos el mensaje «Usted no puede ingresar al evento.»
Aquí utilizamos la posibilidad de anidar condicionales, con el objetivo de compactar nuestro código. El anidamiento de condicionales nos permite evaluar condiciones que dependen de otras.
Ahora, veamos como solucionamos los procesos relacionados con las puertas por donde entran solo mujeres:
Si (genero = 'M') Entonces
Si ((edad >= 18) y (edad < 26)) o (edad > 45) Entonces
escriba "Se abre la puerta 3."
Sino
Si (edad >= 26) y (edad <= 45) Entonces
escriba "Se abre la puerta 4."
Sino
escriba "Usted no puede ingresar al evento."
Fin Si
Fin Si
Fin Si
Si (genero = 'M')
: Si el género es ‘M’ (Mujer) ingresamos al condicional y ejecutamos las instrucciones que encontramos adentro, de lo contrario no hace nada más.Si ((edad >= 18) y (edad < 26)) o (edad > 45)
: Acá es muy importante entender el propósito de agrupar las expresiones por medio de paréntesis. Esta instrucción se interpreta de la siguiente forma: Si la mujer está entre los 18 y 25 años, o es mayor de 45, entonces se presenta el mensaje «Se abre la puerta 3.».
Sino se cumplió la condición anterior, validamos Si (edad >= 26) y (edad <= 45)
: Si la mujer es mayor o igual a 26 y menor o igual a 45 años, en pocas palabras, si la mujer tiene entre 26 y 45 años entonces mostramos el mensaje «Se abre la puerta 4.»
Nuevamente Sino se cumplió la condición anterior entonces definitivamente la mujer no puede ingresar al evento, por lo tanto, mostramos el mensaje «Usted no puede ingresar al evento.»
Aquí nuevamente utilizamos la posibilidad de anidar condicionales, con el objetivo de compactar nuestro código, y además hicimos uso de la agrupación de expresiones por medio de paréntesis para alterar el orden en que se comparan y obtener el resultado esperado.
Ahora, ya podemos armar el programa completo y adicionar algunas instrucciones para mejorarlo.
Caracter genero
Entero edad
inicio
escriba "Ingrese 'H' si es Hombre o 'M' si es Mujer: "
lea genero
llamar nueva_linea
escriba "Ingrese su edad actual: "
lea edad
Si (genero = 'H') Entonces
Si (edad >= 18) y (edad < 26) Entonces
escriba "Se abre la puerta 1."
Sino
Si (edad >= 26) Entonces
escriba "Se abre la puerta 2."
Sino
escriba "Usted no puede ingresar al evento."
Fin Si
Fin Si
Sino
Si (genero = 'M') Entonces
Si ((edad >= 18) y (edad < 26)) o (edad > 45) Entonces
escriba "Se abre la puerta 3."
Sino
Si (edad >= 26) y (edad <= 45) Entonces
escriba "Se abre la puerta 4."
Sino
escriba "Usted no puede ingresar al evento."
Fin Si
Fin Si
Sino
escriba "Usted digitó un genero invalido."
Fin Si
Fin si
llamar nueva_linea
llamar nueva_linea
llamar nueva_linea
Si (edad <> 18) Entonces
escriba "Gracias por su Visita"
Fin Si
fin
Adicionamos a nuestro programa las instrucciones para que el usuario pueda ingresar por teclado su edad y género.
Integramos los segmentos de código previamente estructurados.
Adicionamos una condición que permite mostrar el mensaje «Usted digitó un género invalido.» si el usuario escribe una letra que no sea la H o la M.
Al final adicionamos un condicional que nos permite mostrar el mensaje «»Gracias por su Visita»».
Conclusión
En este artículo, hemos visto cómo utilizar los operadores relacionales y lógicos para realizar la toma de decisiones en LPP. Estos operadores nos permiten controlar el flujo de ejecución de un programa en función de ciertas condiciones.
Es importante comprender cómo funcionan estos operadores para poder escribir programas eficaces.
Para practicar el uso de los operadores relacionales y lógicos, te recomiendo realizar los siguientes ejercicios:
Estos ejercicios te ayudarán a comprender mejor cómo funcionan estos operadores y cómo puedes utilizarlos en tus programas.
Para un mejor entendimiento, te recomiendo ver el video tutorial relacionado en este artículo. En este video, se explica de forma práctica cada uno de los conceptos y teoría explicada en este artículo. ¡Saludos!