Los operadores en C++ son símbolos que le dicen a la computadora qué cálculo o comparación debe hacer con tus datos.
El momento en que el código cobra vida
Imagina que trabajas en el área de nómina de Bimbo. Tienes el salario base de un empleado y necesitas calcular su sueldo neto después de descuentos. Sin operadores, tu programa solo guarda números pero no puede hacer nada con ellos. Los operadores son el puente entre guardar datos y obtener resultados útiles.
En la lección anterior aprendiste a declarar variables como salarioBruto o totalProductos. Ahora vas a hacer que esas variables trabajen juntas. Este es el momento en que tu código deja de ser una lista estática y se convierte en una herramienta real.
El sistema OCLA: cuatro grupos de operadores
Para no perderte entre tantos símbolos, usa el sistema OCLA. Este nombre agrupa los cuatro tipos de operadores que usarás el 95% del tiempo:
- Operación aritmética → para calcular
- Comparación → para comparar valores
- Lógica → para combinar condiciones
- Asignación → para guardar resultados
Aprender estos cuatro grupos en orden te da una base sólida. Vas a verlos uno por uno con ejemplos reales.
Operadores aritméticos: los que calculan
Estos son los más intuitivos. Funcionan igual que en matemáticas.
| Operador | Significado | Ejemplo |
|---|---|---|
+ |
Suma | precio + iva |
- |
Resta | salario - descuento |
* |
Multiplicación | cantidad * precio |
/ |
División | total / empleados |
% |
Módulo (residuo) | total % 7 |
El operador % es el menos conocido, pero muy útil. Te da el residuo de una división. Por ejemplo, 10 % 3 da 1, porque 10 entre 3 es 3 con residuo 1.
Ejemplo 1: Calcular el IVA de un producto de Liverpool
#include <iostream>
using namespace std;
int main() {
double precioBase = 1500;
double iva = precioBase * 0.16;
double precioFinal = precioBase + iva;
cout << "Precio base: $" << precioBase << endl;
cout << "IVA (16%): $" << iva << endl;
cout << "Precio final: $" << precioFinal << endl;
return 0;
}
Salida del programa:
Precio base: $1,500
IVA (16%): $240
Precio final: $1,740
Este código multiplica el precio base por 0.16 para obtener el IVA. Luego suma ambos para obtener el total. Así funciona en cualquier tienda real.
Ejemplo 2: Nómina simplificada estilo FEMSA
#include <iostream>
using namespace std;
int main() {
double salarioBruto = 18500;
double imss = salarioBruto * 0.02;
double isr = salarioBruto * 0.08;
double salarioNeto = salarioBruto - imss - isr;
cout << "Salario bruto: $" << salarioBruto << endl;
cout << "Descuento IMSS: $" << imss << endl;
cout << "Descuento ISR: $" << isr << endl;
cout << "Salario neto: $" << salarioNeto << endl;
return 0;
}
Salida del programa:
Salario bruto: $18,500
Descuento IMSS: $370
Descuento ISR: $1,480
Salario neto: $16,650
Aquí restas múltiples descuentos del salario bruto en una sola línea. Esta lógica es la base de cualquier sistema de nómina real en México.
Operadores de comparación: los que preguntan
Estos operadores comparan dos valores y devuelven true (verdadero) o false (falso). Los usarás mucho cuando llegues a las condiciones if.
| Operador | Significado | Ejemplo |
|---|---|---|
== |
¿Son iguales? | precio == 100 |
!= |
¿Son diferentes? | stock != 0 |
> |
¿Es mayor? | ventas > meta |
< |
¿Es menor? | edad < 18 |
>= |
¿Mayor o igual? | puntos >= 1000 |
<= |
¿Menor o igual? | descuento <= 50 |
Ojo importante: == (doble igual) compara valores. = (un igual) asigna valores. Confundir estos dos es uno de los errores más comunes entre principiantes.
Ejemplo: Verificar si un cliente de Mercado Libre califica para envío gratis
#include <iostream>
using namespace std;
int main() {
double totalCompra = 650;
bool envioGratis = totalCompra >= 599;
cout << "¿Envío gratis? " << envioGratis << endl;
return 0;
}
Salida:
¿Envío gratis? 1
El 1 significa true. Si la compra fuera de $400, mostraría 0 (false). Este tipo de lógica aparece en todos los sistemas de comercio en línea.
Operadores lógicos: los que combinan condiciones
A veces una sola comparación no es suficiente. Necesitas verificar dos cosas a la vez. Ahí entran los operadores lógicos.
| Operador | Significado | Cuándo es true |
|---|---|---|
&& |
Y (AND) | Cuando ambas condiciones son verdaderas |
|| |
O (OR) | Cuando al menos una es verdadera |
! |
No (NOT) | Invierte el valor lógico |
Ejemplo: Descuento especial en Liverpool
Supón que Liverpool da un descuento adicional si el cliente tiene tarjeta Liverpool y su compra supera $3,000.
#include <iostream>
using namespace std;
int main() {
bool tieneTarjeta = true;
double totalCompra = 3500;
bool aplicaDescuento = tieneTarjeta && totalCompra > 3000;
cout << "¿Aplica descuento especial? " << aplicaDescuento << endl;
return 0;
}
Salida:
¿Aplica descuento especial? 1
Si tieneTarjeta fuera false, el resultado sería 0 aunque la compra supere $3,000. El operador && exige que las dos condiciones sean verdaderas.
Operadores de asignación: los que guardan
Ya conoces el operador = básico. Pero C++ tiene atajos que hacen tu código más compacto.
| Operador | Equivale a |
|---|---|
x += 5 |
x = x + 5 |
x -= 3 |
x = x - 3 |
x *= 2 |
x = x * 2 |
x /= 4 |
x = x / 4 |
Ejemplo: Acumular ventas diarias
#include <iostream>
using namespace std;
int main() {
double ventasTotales = 0;
ventasTotales += 4200; // Lunes
ventasTotales += 3800; // Martes
ventasTotales += 5100; // Miércoles
cout << "Ventas acumuladas: $" << ventasTotales << endl;
return 0;
}
Salida:
Ventas acumuladas: $13,100
Esta técnica es clave cuando acumulas datos en ciclos. Lo verás mucho cuando llegues a los bucles for y while.
Errores comunes al usar operadores
Error 1: Dividir enteros y perder decimales
int resultado = 5 / 2; // Da 2, no 2.5
Cuando divides dos enteros (int), C++ descarta la parte decimal. Para obtener 2.5, usa double:
double resultado = 5.0 / 2; // Da 2.5
Error 2: Confundir = con ==
if (precio = 100) // Asigna 100, no compara
if (precio == 100) // Esto sí compara
Este error no siempre genera un mensaje de error claro. Tu programa simplemente se comporta diferente a lo esperado.
Error 3: Olvidar el orden de operaciones
C++ respeta la jerarquía matemática: primero * y /, luego + y -. Usa paréntesis para dejar claro el orden:
double promedio = (nota1 + nota2 + nota3) / 3.0;
Sin los paréntesis, solo nota3 se dividiría entre 3. El resultado sería completamente incorrecto.
Cómo aplicar todo esto en tu próximo programa
Sigue estos tres pasos cada vez que necesites hacer un cálculo:
- Declara tus variables con los tipos correctos (
intpara enteros,doublepara decimales). - Escribe la fórmula usando los operadores del sistema OCLA.
- Guarda el resultado en una nueva variable y muéstralo con
cout.
No intentes hacer todo en una sola línea al principio. Un cálculo por línea hace tu código más fácil de leer y de corregir.
Los operadores son el vocabulario del cálculo: cuantos más domines, más problemas reales podrás resolver con código.