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 =).
