Curso de Programación – CLASE 06

(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)


Operadores Lógicos

Los operadores lógicos producen un resultado booleano, y sus operandos son también valores lógicos o asimilables a ellos.


OPERADOR LÓGICO “Y”

En este primer ejemplo vamos a realizar un programa que controle si podemos obtener la licencia de conducir; para ello es necesario que se cumplan 2 condiciones al mismo tiempo: “haber cumplido los 17 años de edad” (Y) “aprobar el examen de conducir“.

Si las dos condiciones se cumplen, será Verdad que podemos conseguir la licencia.

Con que alguna de las dos no se cumpla, sera Falso que podemos obtener la licencia.

(en resumen, necesitamos que las dos sean verdadero para que sea verdad)

Veamos el programa en el siguiente diagrama en donde vemos el Operador Lógico “Y”:

El Rombo es la figura que en el diagramador de flujo representa al condicional y esta vez analiza dos condiciones al mismo tiempo, y las dos se tienen que cumplir para que sea verdadero.

Analizamos el código

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Algoritmo prog08
Escribir "¿Cumplió los 17 años de edad?"
Escribir "1 - Si."
Escribir "2 - No."
Escribir "Ingrese la opción: "
Leer edad
Escribir "¿Aprobó el examen de conducir?"
Escribir "1 - Si."
Escribir "2 - No."
Escribir "Ingrese la opción: "
Leer examen
Si edad = 1 Y examen = 1 Entonces
Escribir "Puede obtener su licencia."
SiNo
Escribir "No puede obtener su licencia."
FinSi
FinAlgoritmo
Algoritmo prog08 Escribir "¿Cumplió los 17 años de edad?" Escribir "1 - Si." Escribir "2 - No." Escribir "Ingrese la opción: " Leer edad Escribir "¿Aprobó el examen de conducir?" Escribir "1 - Si." Escribir "2 - No." Escribir "Ingrese la opción: " Leer examen Si edad = 1 Y examen = 1 Entonces Escribir "Puede obtener su licencia." SiNo Escribir "No puede obtener su licencia." FinSi FinAlgoritmo
Algoritmo prog08
	Escribir "¿Cumplió los 17 años de edad?"
	Escribir "1 - Si."
	Escribir "2 - No."
	Escribir "Ingrese la opción: "
	Leer edad
	Escribir "¿Aprobó el examen de conducir?"
	Escribir "1 - Si."
	Escribir "2 - No."
	Escribir "Ingrese la opción: "
	Leer examen
	Si edad = 1 Y examen = 1 Entonces
		Escribir "Puede obtener su licencia."
	SiNo
		Escribir "No puede obtener su licencia."
	FinSi
FinAlgoritmo

Ejecutamos el programa


Veamos el código en C++:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// PROG08 - OPERADOR LÓGICO "Y".
#include <iostream>
using namespace std;
int edad;
int examen;
int main()
{
cout << "¿Cumplió los 17 años de edad?" << endl;
cout << "1 - Si." << endl;
cout << "2 - No." << endl;
cout << "Ingrese la opción: ";
cin >> edad;
cout << "¿Aprobó el examen de conducir?" << endl;
cout << "1 - Si." << endl;
cout << "2 - No." << endl;
cout << "Ingrese la opción: ";
cin >> examen;
if(edad==1 && examen==1)
{
cout << endl << "Puede obtener su licencia." << endl;
}
else
{
cout << endl << "No puede obtener su licencia." << endl;
}
return 0;
}
// PROG08 - OPERADOR LÓGICO "Y". #include <iostream> using namespace std; int edad; int examen; int main() { cout << "¿Cumplió los 17 años de edad?" << endl; cout << "1 - Si." << endl; cout << "2 - No." << endl; cout << "Ingrese la opción: "; cin >> edad; cout << "¿Aprobó el examen de conducir?" << endl; cout << "1 - Si." << endl; cout << "2 - No." << endl; cout << "Ingrese la opción: "; cin >> examen; if(edad==1 && examen==1) { cout << endl << "Puede obtener su licencia." << endl; } else { cout << endl << "No puede obtener su licencia." << endl; } return 0; }
// PROG08 - OPERADOR LÓGICO "Y".
#include <iostream>

using namespace std;

int edad;
int examen;

int main()
{
    cout << "¿Cumplió los 17 años de edad?" << endl;
    cout << "1 - Si." << endl;
    cout << "2 - No." << endl;
    cout << "Ingrese la opción: ";
    cin >> edad;
    cout << "¿Aprobó el examen de conducir?" << endl;
    cout << "1 - Si." << endl;
    cout << "2 - No." << endl;
    cout << "Ingrese la opción: ";
    cin >> examen;
    if(edad==1 && examen==1)
    {
        cout << endl << "Puede obtener su licencia." << endl;
    }
    else 
    {
        cout << endl << "No puede obtener su licencia." << endl;
    }
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // PROG08 - OPERADOR LÓGICO "Y".
Este es un comentario, una línea que se ignora por el compilador. Es como un título o una nota para el programador.

Línea 2: #include <iostream>
Esta es una directiva de inclusión que importa la biblioteca estándar iostream. Esta biblioteca proporciona funciones para entrada y salida de datos, como cin (entrada) y cout (salida).

Línea 4: using namespace std;
Esto utiliza el espacio de nombres estándar (std) en todo el programa. Esto significa que podemos utilizar las clases y funciones definidas en la biblioteca estándar sin tener que especificar su nombre completo.

Línea 6: int edad;

Línea 7: int examen;
Estas son declaraciones de variables enteras para almacenar respuesta de edad y examen, respectivamente.

Línea 9: int main()
Esta es la función principal del programa, donde se ejecutan las instrucciones. La función main debe devolver un valor entero que indica si el programa terminó correctamente (0) o con error (-1).

Línea 11: cout << "¿Cumplió los 17 años de edad?" << endl;
Este comando imprime una frase en la consola utilizando el objeto cout, seguida de un salto de línea (endl). La frase pide al usuario si cumplió con los 17 años de edad.

Línea 12: cout << "1 - Si." << endl;

Línea 13: cout << "1 - No." << endl;
Estos comandos imprimen opciones para el usuario.

Línea 14: cout << "Ingrese la opción: ";
Este comando imprime un mensaje pidiendo al usuario que ingrese una opción.

Línea 15: cin >> edad;
Este objeto cin leen la entrada del usuario y almacena el valor en la variable edad.

Línea 16: cout << "¿Aprobó el examen de conducir?" << endl;
Este comando imprime una frase en la consola utilizando el objeto cout, seguida de un salto de línea (endl). La frase pide al usuario si aprobo el examen de conducir.

Línea 17: cout << "1 - Si." << endl;

Línea 18: cout << "1 - No." << endl;
Estos comandos imprimen opciones para el usuario.

Línea 19: cout << "Ingrese la opción: ";
Este comando imprime un mensaje pidiendo al usuario que ingrese una opción.

Línea 20: cin >> examen;
Este objeto cin leen la entrada del usuario y almacenan el valor en la variable examen.

Línea 21: if(edad==1 && examen==1)
Este es un condicional if que evalúa si la edad y examen son iguales a 1. El operador “&&” en C++ significa “y” en lógica booleana, por lo que se requiere que ambas condiciones sean verdaderas para que el bloque de código dentro sea ejecutado.

Línea 23: cout << endl << "Puede obtener su licencia." << endl;
Si la condición if se cumple, este comando imprime un mensaje indicando que el usuario puede obtener su licencia.

Línea 25: else
Este es el bloque else, que se ejecuta si la condición if no se cumple.

Línea 27: cout << endl << "No puede obtener su licencia." << endl;
Si la condición if no se cumple, este comando imprime un mensaje indicando que el usuario no puede obtener su licencia.

Línea 29: return 0;
La función main termina con un valor de retorno de 0, lo que indica que el programa terminó correctamente.


Ahora el código en PYTHON:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
print("¿Cumplió los 17 años de edad?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")
edad = int(input())
print("¿Aprobó el examen de conducir?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")
examen = int(input())
if edad == 1 and examen == 1:
print("Puede obtener su licencia.")
else:
print("No puede obtener su licencia.")
print("¿Cumplió los 17 años de edad?") print("1 - Si.") print("2 - No.") print("Ingrese la opción: ") edad = int(input()) print("¿Aprobó el examen de conducir?") print("1 - Si.") print("2 - No.") print("Ingrese la opción: ") examen = int(input()) if edad == 1 and examen == 1: print("Puede obtener su licencia.") else: print("No puede obtener su licencia.")
print("¿Cumplió los 17 años de edad?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")
edad = int(input())
print("¿Aprobó el examen de conducir?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")
examen = int(input())
if edad == 1 and examen == 1:
	print("Puede obtener su licencia.")
else:
	print("No puede obtener su licencia.")

Vamos a analizar línea por línea este código en PYTHON:

Línea 1: print("¿Cumplió los 17 años de edad?")

  • Esta línea utiliza la función print() para imprimir en la consola el texto "¿Cumplió los 17 años de edad?".

Líneas 2-4:

print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")

  • Estas líneas también utilizan la función print() para imprimir en la consola tres mensajes que preguntan al usuario si ha cumplido los 17 años de edad y le piden ingresar una opción.

Línea 5: edad = int(input())

  • Esta línea utiliza la función input() para leer un valor de entrada del usuario y asignarlo a la variable edad. El parámetro int() convierte el valor leído en un número entero.

Líneas 6-9:

print("¿Aprobó el examen de conducir?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")

  • Estas líneas son similares a las anteriores, pero se refieren al examen de conducir.

Línea 10: examen = int(input())

  • Esta línea es similar a la Línea 5, pero asigna el resultado a la variable examen.

Línea 11: if edad == 1 and examen == 1:

  • Esta línea inicia un bloque if que verifica si las variables edad y examen son iguales a 1.

Líneas 12: print("Puede obtener su licencia.")

  • Si el condicional if es verdadero, se ejecuta esta línea y se imprime el mensaje "Puede obtener su licencia.".

Líneas 13-14:

else:
print("No puede obtener su licencia.")

  • De lo contrario, se ejecuta la línea dentro del bloque else y se imprime el mensaje "No puede obtener su licencia.".


OPERADOR LÓGICO “O”

En este segundo ejemplo vamos a realizar un programa que controle si tenemos al menos uno de 2 síntomas: “tener dolor de garganta” (O) “tener fiebre“.

Si una de las dos condiciones se cumplen, será Verdad y nos dirá ir a una guardia médica.

Si no se cumplen ninguna de las dos condiciones, sera Falso y nos dirá que estamos saludables.

(en resumen, necesitamos que al menos una sea verdadera para que sea verdad)

Veamos el programa en el siguiente diagrama en donde vemos el Operador Lógico “O”:

El Rombo es la figura que en el diagramador de flujo representa al condicional y esta vez analiza dos condiciones al mismo tiempo, y solo se tienen que cumplir una para que sea verdadero.

Analizamos el código

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Algoritmo prog08
Escribir "¿Tiene dolor de garganta?"
Escribir "1 - Si."
Escribir "2 - No."
Escribir "Ingrese la opción: "
Leer dolor
Escribir "¿Tiene fiebre?"
Escribir "1 - Si."
Escribir "2 - No."
Escribir "Ingrese la opción: "
Leer fiebre
Si dolor = 1 O fiebre = 1 Entonces
Escribir "Vaya a una guardia médica."
SiNo
Escribir "Estas saludable."
FinSi
FinAlgoritmo
Algoritmo prog08 Escribir "¿Tiene dolor de garganta?" Escribir "1 - Si." Escribir "2 - No." Escribir "Ingrese la opción: " Leer dolor Escribir "¿Tiene fiebre?" Escribir "1 - Si." Escribir "2 - No." Escribir "Ingrese la opción: " Leer fiebre Si dolor = 1 O fiebre = 1 Entonces Escribir "Vaya a una guardia médica." SiNo Escribir "Estas saludable." FinSi FinAlgoritmo
Algoritmo prog08
	Escribir "¿Tiene dolor de garganta?"
	Escribir "1 - Si."
	Escribir "2 - No."
	Escribir "Ingrese la opción: "
	Leer dolor
	Escribir "¿Tiene fiebre?"
	Escribir "1 - Si."
	Escribir "2 - No."
	Escribir "Ingrese la opción: "
	Leer fiebre
	Si dolor = 1 O fiebre = 1 Entonces
		Escribir "Vaya a una guardia médica."
	SiNo
		Escribir "Estas saludable."
	FinSi
FinAlgoritmo

Ejecutamos el programa


Veamos el código en C++:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// PROG08B - OPERADOR LÓGICO "O".
#include <iostream>
using namespace std;
int dolor;
int fiebre;
int main()
{
cout << "¿Tiene dolor de garganta?" << endl;
cout << "1 - Si." << endl;
cout << "2 - No." << endl;
cout << "Ingrese la opción: ";
cin >> dolor;
cout << "¿Tiene fiebre?" << endl;
cout << "1 - Si." << endl;
cout << "2 - No." << endl;
cout << "Ingrese la opción: ";
cin >> fiebre;
if(dolor==1 || fiebre==1)
{
cout << endl << "Vaya a una guardia médica." << endl;
}
else
{
cout << endl << "Estas saludable." << endl;
}
return 0;
}
// PROG08B - OPERADOR LÓGICO "O". #include <iostream> using namespace std; int dolor; int fiebre; int main() { cout << "¿Tiene dolor de garganta?" << endl; cout << "1 - Si." << endl; cout << "2 - No." << endl; cout << "Ingrese la opción: "; cin >> dolor; cout << "¿Tiene fiebre?" << endl; cout << "1 - Si." << endl; cout << "2 - No." << endl; cout << "Ingrese la opción: "; cin >> fiebre; if(dolor==1 || fiebre==1) { cout << endl << "Vaya a una guardia médica." << endl; } else { cout << endl << "Estas saludable." << endl; } return 0; }
// PROG08B - OPERADOR LÓGICO "O".
#include <iostream>

using namespace std;

int dolor;
int fiebre;

int main()
{
    cout << "¿Tiene dolor de garganta?" << endl;
    cout << "1 - Si." << endl;
    cout << "2 - No." << endl;
    cout << "Ingrese la opción: ";
    cin >> dolor;
    cout << "¿Tiene fiebre?" << endl;
    cout << "1 - Si." << endl;
    cout << "2 - No." << endl;
    cout << "Ingrese la opción: ";
    cin >> fiebre;
    if(dolor==1 || fiebre==1)
    {
        cout << endl << "Vaya a una guardia médica." << endl;
    }
    else 
    {
        cout << endl << "Estas saludable." << endl;
    }
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // PROG08B - OPERADOR LÓGICO "O".
Esto es un comentario, una línea que se ignora por el compilador. Es como un título o una nota para el programador.

Línea 2: #include <iostream>
Esta es una directiva de inclusión que importa la biblioteca estándar iostream. Esta biblioteca proporciona funciones para entrada y salida de datos, como cin (entrada) y cout (salida).

Línea 4: using namespace std;
Esto utiliza el espacio de nombres estándar (std) en todo el programa. Esto significa que podemos utilizar las clases y funciones definidas en la biblioteca estándar sin tener que especificar su nombre completo.

Línea 6-7:

int dolor;

int fiebre;
Estas son declaraciones de variables enteras para almacenar respuesta de dolor y fiebre, respectivamente.

Línea 9: int main()
Esta es la función principal del programa, donde se ejecutan las instrucciones. La función main debe devolver un valor entero que indica si el programa terminó correctamente (0) o con error (-1).

Línea 11: cout << "¿Tiene dolor de garganta?" << endl;

Línea 12: cout << "1 - Si." << endl;

Línea 13: cout << "1 - No." << endl;

Estos comandos imprimen opciones para el usuario.

Línea 14: cout << "Ingrese la opción: ";
Este comando imprime un mensaje pidiendo al usuario que ingrese una opción.

Línea 15: cin >> dolor;

Este objeto cin leen la entrada del usuario y almacenan el valor en la variable dolor.

Línea 16: cout << "¿Tiene fiebre?" << endl;

Línea 17: cout << "1 - Si." << endl;

Línea 18: cout << "1 - No." << endl;

Estos comandos imprimen opciones para el usuario.

Línea 19: cout << "Ingrese la opción: ";
Este comando imprime un mensaje pidiendo al usuario que ingrese una opción.

Línea 20: cin >> fiebre;

Este objeto cin leen la entrada del usuario y almacenan el valor en la variable fiebre.

Línea 21: if(dolor==1 || fiebre==1)
Este es un condicional if que evalúa si la variable dolor o fiebre son iguales a 1. Si es así, se ejecuta el código dentro del bloque de if.

Línea 23: cout << endl << "Vaya a una guardia médica." << endl;
Esto imprime un mensaje que indica que el usuario debe ir a una guardia médica si la variable dolor o fiebre son igual a 1.

Línea 25: else
Este es el bloque else, que se ejecuta si la condición if no se cumple.

Línea 27: cout << endl << "Estas saludable." << endl;
Esto imprime un mensaje que indica que el usuario está saludable si la variable dolor y fiebre no son igual a 1.

Línea 29: return 0;
Este valor de retorno indica que el programa terminó correctamente.


Ahora el código en PYTHON:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
print("¿Tiene dolor de garganta?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")
dolor = int(input())
print("¿Tiene fiebre?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")
fiebre = int(input())
if dolor == 1 or fiebre == 1:
print("Vaya a una guardia médica.")
else:
print("Estas saludable.")
print("¿Tiene dolor de garganta?") print("1 - Si.") print("2 - No.") print("Ingrese la opción: ") dolor = int(input()) print("¿Tiene fiebre?") print("1 - Si.") print("2 - No.") print("Ingrese la opción: ") fiebre = int(input()) if dolor == 1 or fiebre == 1: print("Vaya a una guardia médica.") else: print("Estas saludable.")
print("¿Tiene dolor de garganta?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")
dolor = int(input())
print("¿Tiene fiebre?")
print("1 - Si.")
print("2 - No.")
print("Ingrese la opción: ")
fiebre = int(input())
if dolor == 1 or fiebre == 1:
	print("Vaya a una guardia médica.")
else:
	print("Estas saludable.")

Vamos a analizar línea por línea este código en PYTHON:

Línea 1: print("¿Tiene dolor de garganta?")
Este es un comando de impresión que muestra la frase “¿Tiene dolor de garganta?” en la consola.

Línea 2: print("1 - Si.")

Línea 3: print("1 - No.")
Estos comandos de impresión muestran opciones para el usuario.

Línea 4: print("Ingrese la opción: ")
Este comando de impresión pide al usuario que ingrese una opción.

Línea 5: dolor = int(input())
Esto es un comando que lee la entrada del usuario y almacena el valor en la variable dolor. La función input() devuelve una cadena, por lo que se utiliza la función int() para convertir esa cadena a un número entero.

Línea 6: print("¿Tiene fiebre?")

Línea 7: print("1 - Si.")

Línea 8: print("1 - No.")

Estos comandos de impresión muestran opciones para el usuario.

Línea 9: print("Ingrese la opción: ")
Este comando de impresión pide al usuario que ingrese una opción.
Línea 10: fiebre = int(input())
Este comando es similar al de la linea 5, pero esta vez se utiliza para almacenar el resultado en la variable fiebre.

Línea 11: if dolor == 1 or fiebre == 1:
Este es un condicional if que evalúa las variables dolor y fiebre, si alguna de las dos es igual a 1, se ejecuta el código dentro del bloque de if.

Línea 12: print("Vaya a una guardia médica.")
Si la condición if se cumple, este comando de impresión muestra un mensaje que indica que el usuario debe ir a una guardia médica.

Línea 13: else:
Este es el bloque else, que se ejecuta si la condición if no se cumple.

Línea 14: print("Estas saludable.")
Si la condición if no se cumple, este comando de impresión muestra un mensaje que indica que el usuario está saludable.


Resumen de Operadores Lógicos en PseINT:

OPERADORACCIÓNEJEMPLORESULTADO
&, Y (cualquiera de los dos)Conjunción (Y)(7>4) Y (2=2)VVV
(7>4) Y (2=1)VFF
(3>4) Y (2>1)FVF
(7>8) Y (4<1)FFF
|, O (cualquiera de los dos)Disyunción (O)(7>4) O (2=2)VVV
(7>4) O (2=1)VFV
(3>4) O (2>1)FVV
(7>8) O (4<1)FFF
NONegación (NO)NO (7>4)NOVF
NO (7<4)NOFV

Resumen de Operadores Lógicos en C++:

OPERADORACCIÓNEJEMPLORESULTADO
&&Conjunción (Y)(7>4) && (2=2)VVV
(7>4) && (2=1)VFF
(3>4) && (2>1)FVF
(7>8) && (4<1)FFF
||Disyunción (O)(7>4) O (2=2)VVV
(7>4) O (2=1)VFV
(3>4) O (2>1)FVV
(7>8) O (4<1)FFF
!Negación (NO)!(7>4)NOVF
!(7<4)NOFV

Resumen de Operadores Lógicos en Python:

OPERADORACCIÓNEJEMPLORESULTADO
ANDConjunción (Y)(7>4) and (2=2)VVV
(7>4) and (2=1)VFF
(3>4) and (2>1)FVF
(7>8) and (4<1)FFF
ORDisyunción (O)(7>4) or (2=2)VVV
(7>4) or (2=1)VFV
(3>4) or (2>1)FVV
(7>8) or (4<1)FFF
NOTNegación (NO)not (7>4)NOVF
not (7<4)NOFV

TAREA PARA EL HOGAR

  1. Realiza un programa en donde utilices el Operador Lógico Y.
  2. Realiza un programa en donde utilices el Operador Lógico O.