LPP, Operadores lógicos y relacionales

En este artículo aprenderemos sobre los operadores lógicos y los relacionales, por medio de los cuales podemos crear condiciones avanzadas con el objetivo de determinar el flujo de ejecución de nuestros programas.

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:

Puerta 1: Entran hombres menores de 26 años.
Puerta 2: Entran los demás hombres.
Puerta 3: Entran mujeres menores de 26 años, también ingresan las mujeres mayores de 45 años.
Puerta 4: Las demás mujeres.

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:

Ver este vídeo en YouTube.
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:

< Menor que: Se utiliza para comparar dos valores. Devuelve verdadero si el valor de la izquierda es menor que el valor de la derecha.
<= Menor que: Este operador compara si el valor de la izquierda es menor o igual que el de la derecha.
> Mayor que: Se utiliza para comparar dos valores. Devuelve verdadero si el valor de la izquierda es mayor que el valor de la derecha.
>= Mayor que: Este operador compara si el valor de la izquierda es mayor o igual que el de la derecha.
= Igual: Se utiliza para verificar si dos valores son iguales. Devuelve verdadero si ambos valores son iguales.
<> Diferente: Se utiliza para verificar si dos valores no son iguales. Devuelve verdadero si los valores no son iguales.

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:

Y (and): Este operador devuelve verdadero solo si ambas condiciones que conecta son verdaderas. Es como decir «necesito que ambas cosas sean ciertas para que la condición completa sea cierta».
O (or): Este operador devuelve verdadero si al menos una de las condiciones que conecta es verdadera. Es como decir «me sirve si alguna de estas condiciones es cierta».

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.

genero = ‘H’
edad >= 18 y edad < 26

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.

genero = ‘H’
edad >= 26

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.

genero = ‘M’
(edad >= 18 y edad < 26) o (edad > 45). Observen como aquí hacemos uso de los paréntesis, para agrupar y obtener el resultado esperado.

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.

genero = ‘M’
edad >= 26 y edad <= 45

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:

Escribe un programa que lea un número entero del usuario y determine si el número es positivo, negativo o cero.
Escribe un programa que lea dos números enteros del usuario y determine si el primero es mayor que el segundo, menor que el segundo o igual al segundo.
Escribe un programa que lea una letra del usuario y determine si la letra es una vocal o una consonante.

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!

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

65 + = 67

ANUNCIOS Y PATROCINIOS