El operador módulo y su uso en la tarea m4_t1

La tarea m4_t1 nos dice lo siguiente:

La tarea consiste en validar las propiedades de los números que Eva y Tor nos dicen, y aplicar las reglas literalmente.

Entonces, debemos averiguar 2 cosas:

  • En la regla 1 debemos averiguar si los números son pares
  • En la regla 2, si Tor nos ha dado un numero múltiplo de 3

En matemáticas esto se traduce a 2 conceptos muy simples:

Un numero entero es par cuando este es divisible por 2, es decir, cuando el resto de la división es 0. Por ejemplo 8 | 2 = 4 con resto 0, luego 8 es par.

Análogamente, un número entero es múltiplo de otro cuando dicho numero es divisible por el segundo. Por ejemplo, 33 | 11 = 3 con resto 0, luego 33 es múltiplo de 11, y 11 es un divisor de 33.

Sabemos que los operadores aritméticos (“+”,”-”,”*”,”/”) implementan las operaciones básicas de suma, resta, multiplicación y división, pero, ¿hay algún operador que nos devuelta el resto de la división?.

Si, el operador módulo “%”, este operador existe en la gran mayoría de lenguajes de programación pues es muy habitual tener la necesidad de comprobar propiedades de los números a través de la división.

¿Cómo usamos “%” en el contexto de la tarea?

En el contexto de la tarea, “%” se usa como condición a evaluar en una expresión booleana, por ejemplo una posible implementación de las reglas podría ser así:

//Implementación en ToyScript
/* Suponiendo que ya hemos guardado
 * los valores de Eva y Tor en 2 variables
*/

if (eva % 2 == 0 && tor % 2 == 0) //Si ambos números son pares
  eva = eva + 1 //Debo sumar 1 al primero, que es Eva
end

if (tor % 3 != 0) // Si el segundo número no es múltiplo de 3

do
  tor = tor + 1 // Sumo 1 al segundo número

until (tor % 3 == 0) // hasta que este sea múltiplo de 3

end
suma = eva + tor // Calculo la suma
log(suma) // y la muestro por pantalla
//Por último, salgo por la puerta
//Implementación en JavaScript
/* Suponiendo que ya hemos guardado
 * los valores de Eva y Tor en 2 variables
*/

if (eva % 2 == 0 && tor % 2 == 0){ //Si ambos números son pares
  eva = eva + 1; //Debo sumar 1 al primero, que es Eva
}

if (tor % 3 != 0){ // Si el segundo número no es múltiplo de 3

do {
  tor = tor + 1; // Sumo 1 al segundo número

} while (tor % 3 != 0); // mientras este no sea múltiplo de 3

}
suma = eva + tor; // Calculo la suma
log(suma); // y la muestro por pantalla
//Por último, salgo por la puerta

Así es como se usa el operador “%” para comprobar las distintas propiedades de los números en ToyScript y JavaScript. El enunciado no lo dice, pero implícitamente debemos salir por la puerta a la derecha de Tor, que es la razón por la que se encuentra en esa posición.

Con estos consejos, resolver esta tarea es trivial =).