programacion-operadores-aritmeticos

Operadores aritméticos

Los operadores aritméticos son utilizados para realizar operaciones matemáticas básicas, como la suma, resta, multiplicación y división.

Además, también existen otros operadores aritméticos a los que estaréis menos acostumbrados, como calcular el módulo, o incrementar o decrementar una variable en una unidad.

Los operadores aritméticos más comunes son:

OperadorEjemploResultado
Suma (+)5 + 38
Resta (-)10 - 46
Multiplicación (*)2 * 612
División (/)15 / 35
Exponenciación (^)3 ^ 29
Módulo (%)7 % 21
Incremento (++)a = 5; a++6
Decremento (—)b = 8; b—7

Los operadores suma, resta, multiplicación y división son las mismas operaciones que en matemáticas. Básicamente, todos conocemos el funcionamiento de estos operadores.

No obstante, cabe decir, que en muchos lenguajes se tendrá resultados diferentes cuando realicemos las operaciones con números enteros o números con decimales. Esto puede llevar a alguna sorpresa y malentendido sobre todo al principio. Lo veremos más abajo en los ejemplos.

Por su parte, la exponenciación no suele ser frecuente en los lenguajes. Cuando lo hace, suele representarse por ^ o **. No obstante, en la mayoría de lenguajes la exponenciación suele ser una función de alguna librería como

Math.Pow(a, b)

Por su parte el módulo % es la parte que resta de la división entera de dos números enteros. Cuando te enseñan a dividir sin decimales, y te dicen “9 entre 7 es 1, y me llevo 2”… pues ese “2” es el módulo.

Los operadores incremento ++ y decremento -- aumentan o disminuyen, respectivamente, el valor de una variable en 1. Suelen existir en versión prefijo ++i o sufijo i++. Aunque en la actualidad, la práctica recomendada es que estén en su propia línea.

Uso de operadores aritméticos en lenguajes de programación

A continuación, veremos cómo utilizar los operadores aritméticos en diferentes lenguajes de programación:

Por ejemplo así se aplicarían en C, C++, C# o Java.

int a = 12;
int b = 5;
int suma = a + b;             // suma = 17
int resta = a - b;            // resta = 7
int multiplicacion = a * b;   // multiplicacion = 60
int division = a / b;         // division = 2
int modulo = a % b;           // modulo = 2

Muy parecido es el caso de JavaScript JavaScript.

let a = 12;
let b = 5;
let suma = a + b;             // suma = 17
let resta = a - b;            // resta = 7
let multiplicacion = a * b;   // multiplicacion = 60
let division = a / b;         // division = 2.4
let modulo = a % b;           // modulo = 2

Aquí utilizamos las mismas variables a y b y los mismos operadores aritméticos que en el ejemplo anterior. Sin embargo, en JavaScript utilizamos la palabra clave let para declarar las variables.

Además, observad que la división ha dado un resultado con decimales, mientras que en el ejemplo anterior únicamente se devolvía 2, que es el resultado de la operación con números enteros.

Finalmente, en el caso de Python tendríamos:

a = 12
b = 5
suma = a + b                 # suma = 17
resta = a - b                # resta = 7
multiplicacion = a * b       # multiplicacion = 60
division = a / b             # division = 2.4 (resultado decimal)
division_entera = a // b     # division = 2 (resultado entero)
modulo = a % b               # modulo = 2

En este ejemplo en Python, utilizamos las mismas variables a y b y los mismos operadores aritméticos. Pero, a diferencia de los ejemplos anteriores, en Python no es necesario ni especificar el tipo de dato, ni declarar la variable.

Aritmética de enteros

Lo hemos comentado antes, y lo hemos visto en los ejemplos de código. En muchos lenguajes (típicamente los lenguajes fuertemente tipados) las operaciones van a ser diferentes si trabajamos con números enteros o decimales.

Miremos el caso de la división en C, C++, C# o Java

int a = 12;
int b = 5;

int division = a / b;     // division = 2

En este caso la división en 2, porque estamos operando con números enteros. Lo cuál puede causar un poco de lío para gente que estamos empezando.

Si realizáramos el ejemplo con valores con decimales, obtendríamos 2.4.

float a = 12;
float b = 5;

float division = a / b;     // division = 2.4

En lenguajes con tipado dinámico, como JavaScript o Python, frecuentemente esta conversión se realiza “bajo el capó” sin que nos demos cuenta. Por lo cuál la división nos da 2.4 directamente.

Sin embargo, las operaciones con enteros son útiles en muchas ocasiones. Así, por ejemplo, Python proporciona un operador alternativo // para la división con enteros

a = 12
b = 5

division_entera = a // b     # division_entera = 2

Mientras que en JavaScript tendríamos que “apañarnosla” por ejemplo así

a = 12
b = 5

let division_entera = Math.floor(a / b);     // division_entera = 2