Menu
CoddyTech

Operador módulo

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

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

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

Por ejemplo:

result = 10 % 3;

Aquí, 10 se divide entre 3. El 3 cabe tres veces en 10, con un resto de 1. Así que result será 1.

Por lo general, el módulo se usa para comprobar si un número es par o impar:

  • Si un número es par, al dividirlo entre 2, el resto será 0.
  • Si un número es impar, al dividirlo entre 2, el resto será 1, o -1 si el número es negativo.

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

#include <cmath>

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

Así es como funciona: 2.0 cabe dos veces en 5.2 (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, así 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, 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

Comprueba el resultado y observa cómo afectan al resultado los distintos dividendos y divisores.

Pruébalo tú mismo

#include <iostream>
#include <cmath>

int main() {
    // Escribe tu código a continuación
    
    
    // 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

Practica por tu cuenta: Compilador de C++ online