Operadores y comparaciones
Ya sabes guardar información en variables. Pero guardar datos sin poder hacer nada con ellos es como tener ingredientes en la cocina y no poder cocinar. Necesitas operadores: herramientas que te permiten calcular, comparar y combinar valores para tomar decisiones.
En esta lección vas a aprender tres tipos de operadores que usarás constantemente: aritméticos (para calcular), de comparación (para preguntar) y lógicos (para combinar condiciones).
Operadores aritméticos: las matemáticas de siempre
Son los que ya conoces del colegio, con un invitado sorpresa al final:
OPERADORES ARITMÉTICOS:
+ Suma 10 + 3 = 13
- Resta 10 - 3 = 7
* Multiplicación 10 * 3 = 30
/ División 10 / 3 = 3.33
% Módulo (resto) 10 % 3 = 1
Los cuatro primeros no tienen misterio. El quinto, el módulo, te da el resto de una división. Si divides 10 entre 3, caben 3 veces (3 x 3 = 9) y sobra 1. Ese 1 es el módulo.
¿Para qué sirve el módulo? Para muchas cosas. Por ejemplo, para saber si un número es par o impar:
// Si el resto de dividir entre 2 es 0, el número es par
7 % 2 = 1 // Impar (sobra 1)
8 % 2 = 0 // Par (no sobra nada)
15 % 2 = 1 // Impar
100 % 2 = 0 // Par
Ejemplo: calcular el precio total con descuento e impuestos
Imagina una tienda online. El cliente tiene un cupón de descuento del 15% y hay que añadir un 21% de IVA sobre el precio ya descontado:
ALGORITMO: Calcular precio final
CREAR variable precioOriginal CON VALOR 80
CREAR variable porcentajeDescuento CON VALOR 15
CREAR variable porcentajeIVA CON VALOR 21
// Paso 1: Calcular el descuento
CREAR variable cantidadDescuento CON VALOR precioOriginal * porcentajeDescuento / 100
// cantidadDescuento = 80 * 15 / 100 = 12
// Paso 2: Aplicar el descuento
CREAR variable precioConDescuento CON VALOR precioOriginal - cantidadDescuento
// precioConDescuento = 80 - 12 = 68
// Paso 3: Calcular el IVA sobre el precio descontado
CREAR variable cantidadIVA CON VALOR precioConDescuento * porcentajeIVA / 100
// cantidadIVA = 68 * 21 / 100 = 14.28
// Paso 4: Precio final
CREAR variable precioFinal CON VALOR precioConDescuento + cantidadIVA
// precioFinal = 68 + 14.28 = 82.28
MOSTRAR "Precio original: " + precioOriginal + " euros"
MOSTRAR "Descuento (" + porcentajeDescuento + "%): -" + cantidadDescuento + " euros"
MOSTRAR "Subtotal: " + precioConDescuento + " euros"
MOSTRAR "IVA (" + porcentajeIVA + "%): +" + cantidadIVA + " euros"
MOSTRAR "TOTAL: " + precioFinal + " euros"
FIN
Fíjate en cómo cada paso intermedio se guarda en una variable con un nombre descriptivo. Podríamos haberlo hecho todo en una sola línea, pero sería ilegible. La claridad siempre gana a la brevedad.
Operadores de comparación: hacer preguntas
Los operadores de comparación hacen una pregunta y devuelven una respuesta booleana: VERDADERO o FALSO. Son la base para que nuestros algoritmos tomen decisiones.
OPERADORES DE COMPARACIÓN:
> Mayor que 5 > 3 = VERDADERO
< Menor que 5 < 3 = FALSO
>= Mayor o igual que 5 >= 5 = VERDADERO
<= Menor o igual que 5 <= 3 = FALSO
== Igual a 5 == 5 = VERDADERO
!= Diferente de 5 != 3 = VERDADERO
Piensa en cada comparación como una pregunta de sí o no:
edad >= 18es como preguntar: "¿la edad es 18 o más?"saldo == 0es como preguntar: "¿el saldo es exactamente cero?"temperatura != 0es como preguntar: "¿la temperatura es distinta de cero?"
CREAR variable edad CON VALOR 16
edad > 18 // FALSO (16 no es mayor que 18)
edad >= 18 // FALSO (16 no es mayor o igual que 18)
edad < 18 // VERDADERO (16 sí es menor que 18)
edad == 16 // VERDADERO (16 es igual a 16)
edad != 21 // VERDADERO (16 es diferente de 21)
Operadores lógicos: combinar condiciones
A veces una sola comparación no basta. Necesitas combinar varias condiciones para tomar una decisión. Para eso existen los operadores lógicos: Y, O y NO.
Y (AND): las dos condiciones deben cumplirse
Piensa en un concierto que requiere entrada Y documento de identidad. Si tienes uno pero no el otro, no entras.
VERDADERO Y VERDADERO = VERDADERO // Tiene entrada y DNI: pasa
VERDADERO Y FALSO = FALSO // Tiene entrada pero no DNI: no pasa
FALSO Y VERDADERO = FALSO // Tiene DNI pero no entrada: no pasa
FALSO Y FALSO = FALSO // No tiene nada: no pasa
Con Y, basta que una condición sea FALSO para que todo sea FALSO. Las dos tienen que ser VERDADERO.
O (OR): al menos una condición debe cumplirse
Piensa en un descuento que aplica si eres estudiante O mayor de 65 años. Con cumplir una de las dos, ya tienes descuento.
VERDADERO O VERDADERO = VERDADERO // Estudiante y mayor de 65: descuento
VERDADERO O FALSO = VERDADERO // Solo estudiante: descuento
FALSO O VERDADERO = VERDADERO // Solo mayor de 65: descuento
FALSO O FALSO = FALSO // Ni una ni otra: sin descuento
Con O, basta que una condición sea VERDADERO para que todo sea VERDADERO. Solo es FALSO si las dos son FALSO.
NO (NOT): invierte el resultado
Simplemente le da la vuelta al valor:
NO VERDADERO = FALSO
NO FALSO = VERDADERO
// Ejemplo práctico:
CREAR variable estaLloviendo CON VALOR FALSO
SI NO estaLloviendo ENTONCES
MOSTRAR "Puedes salir sin paraguas"
FIN
Ejemplo: ¿puede esta persona subir a la montaña rusa?
En un parque de atracciones, la montaña rusa tiene dos requisitos: medir al menos 140 cm Y tener al menos 10 años. Necesitamos combinar operadores de comparación con operadores lógicos:
ALGORITMO: ¿Puede subir a la montaña rusa?
CREAR variable nombre CON VALOR "Lucas"
CREAR variable altura CON VALOR 145
CREAR variable edad CON VALOR 8
CREAR variable cumpleAltura CON VALOR altura >= 140
// cumpleAltura = 145 >= 140 = VERDADERO
CREAR variable cumpleEdad CON VALOR edad >= 10
// cumpleEdad = 8 >= 10 = FALSO
CREAR variable puedeSubir CON VALOR cumpleAltura Y cumpleEdad
// puedeSubir = VERDADERO Y FALSO = FALSO
SI puedeSubir ENTONCES
MOSTRAR nombre + " puede subir a la montaña rusa"
SI NO
MOSTRAR nombre + " NO puede subir a la montaña rusa"
SI NO cumpleAltura ENTONCES
MOSTRAR " Motivo: no alcanza la altura mínima de 140 cm"
FIN
SI NO cumpleEdad ENTONCES
MOSTRAR " Motivo: no tiene la edad mínima de 10 años"
FIN
FIN
Lucas mide 145 cm (cumple la altura) pero tiene 8 años (no cumple la edad). Como usamos Y, necesita cumplir ambos requisitos. Resultado: no puede subir. Además, el algoritmo le dice exactamente por qué no puede, lo cual es mucho más útil que un simple "no".
Combinando todo: un ejemplo completo
Vamos a juntar operadores aritméticos, de comparación y lógicos en un ejemplo real. Una tienda tiene esta promoción: si el cliente gasta más de 50 euros Y es miembro del club de fidelidad, obtiene un 20% de descuento. Si solo cumple una de las dos, obtiene un 10%. Si no cumple ninguna, paga el precio completo.
ALGORITMO: Calcular descuento de la tienda
CREAR variable totalCompra CON VALOR 75
CREAR variable esMiembro CON VALOR VERDADERO
CREAR variable gastaMinimo CON VALOR totalCompra > 50
// gastaMinimo = 75 > 50 = VERDADERO
CREAR variable descuento CON VALOR 0
SI gastaMinimo Y esMiembro ENTONCES
// Cumple las dos: 20% de descuento
CAMBIAR descuento A 20
SI NO
SI gastaMinimo O esMiembro ENTONCES
// Cumple solo una: 10% de descuento
CAMBIAR descuento A 10
SI NO
// No cumple ninguna: sin descuento
CAMBIAR descuento A 0
FIN
FIN
CREAR variable cantidadDescuento CON VALOR totalCompra * descuento / 100
CREAR variable totalFinal CON VALOR totalCompra - cantidadDescuento
MOSTRAR "Compra: " + totalCompra + " euros"
MOSTRAR "Descuento aplicado: " + descuento + "%"
MOSTRAR "Te ahorras: " + cantidadDescuento + " euros"
MOSTRAR "Total a pagar: " + totalFinal + " euros"
FIN
En este caso, el cliente gasta 75 euros (más de 50) y es miembro del club. Cumple las dos condiciones, así que obtiene el 20% de descuento. Paga 60 euros en vez de 75. No está mal.
Tabla resumen de operadores
ARITMÉTICOS COMPARACIÓN LÓGICOS
+ Suma > Mayor que Y (AND) Ambas verdaderas
- Resta < Menor que O (OR) Al menos una
* Multiplicación >= Mayor o igual NO (NOT) Invierte el valor
/ División <= Menor o igual
% Módulo (resto) == Igual a
!= Diferente de
Resumen
- Los operadores aritméticos (+, -, *, /, %) hacen cálculos con números. El módulo te da el resto de una división.
- Los operadores de comparación (>, <, >=, <=, ==, !=) hacen preguntas y devuelven VERDADERO o FALSO.
- Los operadores lógicos (Y, O, NO) combinan condiciones para tomar decisiones más complejas.
- Puedes combinar los tres tipos para resolver problemas reales: calcular precios, validar acceso, aplicar descuentos.
En la siguiente lección vamos a aprender sobre condicionales: cómo hacer que un algoritmo tome caminos diferentes según las condiciones que se cumplan.
¿Aprueba el estudiante?
Un instituto tiene las siguientes reglas para aprobar una asignatura:
- La nota del examen debe ser mayor o igual a 5 (sobre 10).
- La asistencia debe ser mayor o igual al 80%.
- Se deben cumplir ambas condiciones para aprobar.
Con papel y bolígrafo, escribe un algoritmo que:
- Defina las variables:
nombreEstudiante,notaExamenyporcentajeAsistencia. - Evalúe si el estudiante aprueba o suspende.
- Si suspende, muestre el motivo exacto: si fue por nota, por asistencia o por ambas.
- Si aprueba y además tiene una nota >= 9 Y asistencia del 100%, muestre un mensaje de "Matrícula de Honor".
Prueba tu algoritmo con estos tres estudiantes:
- Ana: nota 7, asistencia 90% (debería aprobar)
- Pedro: nota 4, asistencia 95% (debería suspender por nota)
- Laura: nota 9.5, asistencia 100% (debería tener Matrícula de Honor)
lightbulb Pistas
Empieza definiendo las tres variables. Luego crea dos variables booleanas intermedias: cumpleNota (notaExamen >= 5) y cumpleAsistencia (porcentajeAsistencia >= 80). La variable aprueba es el resultado de cumpleNota Y cumpleAsistencia. Para la matrícula de honor, necesitas otra condición: notaExamen >= 9 Y porcentajeAsistencia == 100. No olvides que un estudiante con matrícula de honor primero aprueba y luego recibe la distinción adicional.