Menu
Coddy logo textTech

Operador módulo

Parte de la sección Fundamentos del Journey de C++ de Coddy — lección 17 de 74.

El operador módulo % da el resto de una división. En C++, se utiliza con una sintaxis sencilla:

result = dividend % divisor;
  • dividend: El número que se está dividiendo.
  • divisor: El número que divide al dividend.
  • result: El resto de la división.

Por ejemplo:

result = 10 % 3;

Aquí, 10 se divide entre 3. El 3 cabe en el 10 tres veces, con un resto de 1. Por lo tanto, result será 1.

Normalmente, el operador módulo se utiliza para comprobar si un número es par o impar:

  • Si un número es par, al dividirlo por 2 el resto será 0.
  • Si un número es impar, al dividirlo por 2 el resto será 1.

Al trabajar con números de punto flotante (doubles) en C++, no se puede usar el operador de módulo % directamente. En su lugar, debe usar la función fmod() de la biblioteca <cmath>. Funciona de manera similar al operador de módulo pero mantiene la precisión decimal. Por ejemplo:

#include <cmath>

double result = fmod(5.2, 2.0);
// el resultado es 1.2

Así es como funciona: 2.0 cabe en 5.2 dos veces (4.0), y el resto es 1.2 (5.2 - 4.0 = 1.2).

Otro ejemplo:

double result = fmod(7.8, 3.5);
// result es 0.8

Cuando el divisor es mayor que el dividendo, el resultado es igual al dividendo. Esto se aplica tanto a % como a fmod().

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

¿Por qué? El divisor cabe cero veces, por lo que todo el dividendo es el resto.

challenge icon

Desafío

Principiante

Escribe un código que inicialice tres variables, a (int), b (double) y c (int) con los valores 9, 2.6 y 11 (respectivamente).

Después de eso, inicializa las siguientes variables:

  • d (int) que contendrá el resultado de a módulo 2 
  • e (int) que contendrá el resultado de a módulo 3
  • f (double) que contendrá el resultado de b módulo 1.5
  • g (double) que contendrá el resultado de b módulo 3.9
  • h (int) que contendrá el resultado de c módulo 10

Observa el resultado y mira cómo diferentes dividendos y divisores afectan el resultado.

Hoja de referencia

El operador módulo % devuelve el resto de una división:

result = dividend % divisor;

Ejemplo:

result = 10 % 3;  // el resultado es 1

Caso de uso común: comprobar si un número es par o impar:

  • Números pares: number % 2 == 0
  • Números impares: number % 2 == 1

Para números de punto flotante, utiliza fmod() de <cmath>:

#include <cmath>

double result = fmod(5.2, 2.0);  // el resultado es 1.2
double result2 = fmod(7.8, 3.5); // result2 es 0.8

Cuando el divisor es mayor que el dividendo, el resultado es igual al dividendo. Esto se aplica tanto a % como a fmod().

Pruébalo tú mismo

#include <iostream>
#include <cmath>

int main() {
    // Escribe tu código debajo
    
    
    // No cambies la línea de abajo
    std::cout << "a = " << a << std::endl;
    std::cout << "b = " << b << std::endl;
    std::cout << "c = " << c << std::endl;
    std::cout << "d = " << d << std::endl;
    std::cout << "e = " << e << std::endl;
    std::cout << "f = " << f << std::endl;
    std::cout << "g = " << g << std::endl;
    std::cout << "h = " << h << std::endl;
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos