domingo, 25 de octubre de 2015

Operación Residuo (MOD)

El set de instrucciones de cada lenguaje de programación puede llegar a ser tan amplio que no llegamos a aprenderlo todo y mucho menos saber en qué casos podemos sacar ventaja de utilizar una instrucción determinada.
En este post quiero hablar de la instrucción de Residuo, conocida como % en C, C++, php, java o MOD en COBOL, PLSQL, Pascal.

Recordando un poco de matemáticas, sabemos que:
Dividendo = Cociente * Divisor + Residuo
Ejm. 7 = 3 * 2 + 1
Si despejamos el residuo sería:
Residuo = Dividendo - (Cociente * Divisor)

La operación Residuo se calcula utilizando el Dividendo y el cociente o el dividendo y el divisor. La sintaxis sería:
Residuo = Dividendo % Cociente (1 = 7 % 3)
Residuo = Dividendo % Divisor (1 = 7 % 2)

¿En qué casos podemos utilizar esta operación?
Sólo os daré dos casos típicos:

Realizar una acción cuando un número es múltiplo de otro
Imprimir los 30 primeros múltiplos de 3
int numerosImpresos = 0 //controla el número de números impresos
int contador = 1; //Es el número que hace de Dividendo en la operación
while(numerosImpresos < 30)
{
  if (contador % 3 == 0) //si el residuo es 0, es una división exacta por tanto es múltiplo
  {
    Console.write(contador);  
  }
  contador ++;
}

Realizar un cambio de base
Cambiar el número 5 de base decimal a binario.
Como se cambia a sistema binario de utiliza el divisor = 2 (Base N, implica divisor N)

int dividendo = 5;
int divisor = 2;
string cambioBase = “”;

while(dividendo / divisor >1)
{
  residuo = dividendo % divisor;
  dividendo = dividendo / divisor;
  cambioBase = residuo + cambioBase; //se va concatenando a la izquierda
}
cambioBase = dividendo + cambioBase; //en esta variable está el resultado "101"



¿Se os ocurre otro ejemplo?