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.2Así 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.8Cuando 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.
Desafío
PrincipianteEscribe 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 deamódulo2e (int)que contendrá el resultado deamódulo3f (double)que contendrá el resultado debmódulo1.5g (double)que contendrá el resultado debmódulo3.9h (int)que contendrá el resultado decmódulo10
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 1Caso 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.8Cuando 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;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador móduloIncremento/DecrementoPost-incremento/decrementoAtajos aritméticosOperadores de comparaciónComparación de strings7Conceptos básicos de Entrada/Salida
Sentencia coutSentencia cinEntrada de cadenasResumen - Hasta 120Resumen - Verdadero o Falso5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 38Calculadora de números
Mensaje de bienvenidaObtención de números3Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaResumen - Inicializar variablesType Casting Parte 1Type Casting Parte 26Toma de decisiones
Sentencia IfIf - ElseSentencia SwitchOperador condicionalRepaso - If ElseIf - Else anidados