Saltar a contenido

Operadores Aritméticos

Si queremos que nuestro programa realice operaciones aritméticas debemos de saber cuáles son y cómo funcionan estos operadores

# Suma
3 + 2  # = 5

# Resta
3 - 2  # = -1

# Multiplicación
3 * 2  # = 6

# Exponenciación ("elevado a")
3 ** 2  # = 9

# División con decimales (a veces denominada "true division")
3 / 2  # = 1.5

# División entera (se ignora el resto de la división)
3 // 2  # = 1

# Módulo ("resto de dividir entre...")
3 % 2  # = 1

# Abreviaturas
a += b  # Equivalente a "a = a + b"
a -= b  # Equivalente a "a = a - b"
a *= b  # Equivalente a "a = a * b"
a /= b  # Equivalente a "a = a / b"
a //= b  # Equivalente a "a = a // b"
a %= b  # Equivalente a "a = a % b"

# En python no tenemos los operadores ++ o --
# Para incrementar tenemos que hacer uso de los anteriores
a +=1
a -=1
/*
+ suma
- resta
* multiplicación
/ división
% módulo
= asignación
a += b equivale a: a = a + b
a -= b equivale a: a = a - b
a *= b equivale a: a = a * b
a /= b equivale a: a = a / b
a %= b equivale a: a = a % b
Los 4 incrementan y decrementan pero 
a++ equivale a: devolver el dato y luego incrementarlo
a-- equivale a: devolver el dato y luego decrementarlo
++a equivale a: incrementar el dato y luego devolverlo 
--a equivale a: decrementar el dato y luego devolverlo
*/



#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int argc, char const *argv[])
{
int a = 3;
cout<<a++<<"\n";
cout<<++a<<"\n";
cout<<a--<<"\n";
cout<<--a<<"\n";
return 0;
}

Cuidado

En C/C++, la asignación (=) se considera un operador, cuyo valor es el valor de la variable de la izquierda del = después de realizar la asignación. Por tanto, la siguiente línea es totalmente válida:

int a, b;
a = b = 3;
// Equivalente a:
a = (b = 3);
// Tanto "a" como "b" tienen asignados el valor 3

Esto puede leerse como:

  • La sentencia a = (b = 3) consiste en evaluar la expresión a = (b = 3)
    • Evaluar la expresión a = (b = 3) consiste en evaluar la expresión b = 3 y asignar su valor a a, el valor de la expresión es el nuevo valor de a.
      • Evaluar la expresión b = 3 consiste en evaluar la expresión 3 y asignar su valor a b, el valor de la expresión es el nuevo valor de b.

Aunque puede ser útil y elegante en ocasiones, en otras puede ser una mala práctica. El problema más común que nos podemos encontrar es una errata del siguiente tipo:

int a;
// ...
if (a = 3) { // Errata: realmente queríamos comparar si "a == 3"
             // En su lugar, se asignará el valor 3 a "a" y se
             // ejecutará el bloque ya que 3 != 0
    // ...
}

En Python, la asignación NO es un operador, sino una sentencia

a = 3  # Válido
if a = 3:  # Error de sintáxis, el programa falla
    ...

Recientemente se añadió al estándar el operador morsa (:=) que funciona como la asignación de C, pero generalmente sólo es útil en situaciones muy concretas, puedes ignorarlo por ahora.


Última actualización: June 21, 2021