Opérateur modulo
Fait partie de la section Fondamentaux du Journey C++ de Coddy — leçon 17 sur 74.
L'opérateur modulo % donne le reste d'une division. En C++, il est utilisé avec une syntaxe simple :
result = dividend % divisor;- dividend: Le nombre à diviser.
- divisor: Le nombre qui divise le dividende.
- result: Le reste de la division.
Par exemple :
result = 10 % 3;Ici, 10 est divisé par 3. 3 va dans 10 trois fois, avec un reste de 1. Ainsi, result sera 1.
Généralement, le modulo est utilisé pour vérifier si un nombre est pair ou impair :
- Si un nombre est pair, le diviser par 2 laissera un reste de 0.
- Si un nombre est impair, le diviser par 2 laissera un reste de 1.
Lorsque vous travaillez avec des nombres à virgule flottante (doubles) en C++, vous ne pouvez pas utiliser l'opérateur modulo % directement. À la place, vous devez utiliser la fonction fmod() de la bibliothèque <cmath>. Elle fonctionne de manière similaire à l'opérateur modulo mais conserve la précision décimale. Par exemple :
#include <cmath>
double result = fmod(5.2, 2.0);
// le résultat est 1.2Voici comment cela fonctionne : 2.0 va dans 5.2 deux fois (4.0), et le reste est 1.2 (5.2 - 4.0 = 1.2).
Un autre exemple :
double result = fmod(7.8, 3.5);
// result est 0.8Lorsque le diviseur est plus grand que le dividende, le résultat est égal au dividende. Cela s'applique à la fois à % et fmod().
5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5Pourquoi ? Le diviseur y va zéro fois, donc le dividende entier est le reste.
Défi
DébutantÉcrivez un code qui initialise trois variables, a (int), b (double) et c (int) avec les valeurs 9, 2.6 et 11 (respectivement).
Après cela, initialisez les variables suivantes :
d (int)qui contiendra le résultat deamodulo2e (int)qui contiendra le résultat deamodulo3f (double)qui contiendra le résultat debmodulo1.5g (double)qui contiendra le résultat debmodulo3.9h (int)qui contiendra le résultat decmodulo10
Observez le résultat et voyez comment les différents dividendes et diviseurs affectent le résultat.
Aide-mémoire
L'opérateur modulo % donne le reste d'une division :
result = dividend % divisor;Exemple :
result = 10 % 3; // result is 1Cas d'utilisation courant - vérifier si un nombre est pair ou impair :
- Nombres pairs :
number % 2 == 0 - Nombres impairs :
number % 2 == 1
Pour les nombres à virgule flottante, utilisez fmod() de <cmath> :
#include <cmath>
double result = fmod(5.2, 2.0); // result is 1.2
double result2 = fmod(7.8, 3.5); // result2 is 0.8Lorsque le diviseur est plus grand que le dividende, le résultat est égal au dividende. Cela s'applique à la fois à % et à fmod().
Essayez vous-même
#include <iostream>
#include <cmath>
int main() {
// Tapez votre code ci-dessous
// Ne modifiez pas la ligne ci-dessous
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;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloIncrémentation / DécrémentationPost-incrémentation / Post-décrémentationRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Bases des entrées/sorties
Instruction coutInstruction cinSaisie de chaînes de caractèresRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux3Variables - Partie 2
Déclaration de typeConventions de nommageRécapitulatif - Initialisation des variablesType Casting - Partie 1Type Casting - Partie 26Prise de décision
L'instruction IfIf - ElseL'instruction SwitchOpérateur conditionnelRécapitulatif - If ElseIf - Else imbriqués