Funciones de pares e impares en programación en C

Por g.s. jackson
Funciones de pares e impares en programación en C
Ablestock.com/AbleStock.com/Getty Images

El lenguaje de programación C está diseñado como un lenguaje de diseño de sistemas que puede ser leído por los humanos para que los programadores trabajen en el desarrollo de software. La sintaxis y operaciones de C (como las expresiones matemáticas y las estructuras de bucles) son más intuitivas para un programador de computadoras cuando trabaja con software complejo. Las operaciones matemáticas sencillas como la operación de módulo (o resto) requiere un símbolo único, y permite a los programadores desarrollar funciones que calculan números pares e impares.

El operador de módulo en C

El operador de módulo en C (representado como el símbolo '%') actúa como un tipo de división. Pero en lugar de dividir dos números y devolver el cociente al usuario, el operador de módulo divide dos números y devuelve el resto como un entero. En este ejemplo, ocurren dos operaciones de módulo, cada una devolviendo un valor idéntico:

int x = 11 % 4 //resto de 11/4 = 3 int y = 13 % 5 //resto de 13/5 = 3

Usar el módulo para determinar los números pares e impares

Puesto que la operación de módulo determina el resto de una división entre dos números, parece lógico que el operador de módulo se use para averiguar los números pares e impares. Un número par, por definición, es cualquier número divisible por 2. Por tanto, el número devuelve un cero al obtener el módulo de la división por 2. De forma más sencilla, un número "n" es par si "n % 2" es igual a cero. Por ejemplo, este código define una función que toma un entero y devuelve un entero (0 o 1) según si el número es o no par.

int isEven(int x) { return (x % 2); }

Una función de generación de números pares e impares

Usando la operación de módulo, parece sencillo crear una función que genere números pares o impares. Un programador puede encontrar útil generar una lista de números pares e impares. En este caso, un sencillo bucle for y un tamaño de campo introducido por el usuario es lo único que necesitas para crear una colección de números:

void evenGenerate(int size) { int i = 0;

for(i; i <= size; i++) { if(i % 2 == 0) cout << i << endl; } }

Esto genera números pares. El programador puede cambiar la sentencia "if" para que diga "if(i%2 ==1)" para generar números impares.

Alternativas a Modulus

El propio módulo no es una operación sencilla, sino que contiene tres computaciones matemáticas en una. Esto se debe a que la operación "x % y" en realidad es igual a "x - y * (x/y)". Sabiendo esto, un programador puede dividir la operación o encontrar formas de incorporar las partes de la operación con otras operaciones para optimizar el tiempo. Pero para uso y facilidad general en la codificación el operador de módulo funciona bien. Lo siguiente sirve como ejemplo de dos métodos juntos en C:

int x = 10 % 2; //10/2 = 5 sin resto int y = 10 - (2 * (10/2)); // En orden de operación, 10/2 = 5; 5 * 2 = 10; 10 - 10 = 0 resto