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 s’utilise avec une syntaxe simple :
result = dividend % divisor;- dividend : Le nombre que l’on divise.
- divisor : Le nombre par lequel on divise le dividende.
- result : Le reste de la division.
Par exemple :
result = 10 % 3;Ici, 10 est divisé par 3. 3 entre dans 10 trois fois, avec un reste de 1. Donc, result sera égal à 1.
En général, le modulo est utilisé pour vérifier si un nombre est pair ou impair :
- Si un nombre est pair, le diviser par 2 laisse un reste de 0.
- Si un nombre est impair, le diviser par 2 laisse un reste de 1, ou de -1 si le nombre est négatif.
Lorsque tu travailles avec des nombres à virgule flottante (des doubles) en C++, tu ne peux pas utiliser directement l’opérateur modulo %. À la place, tu dois 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);
// result vaut 1.2Voici comment cela fonctionne : 2.0 entre deux fois dans 5.2 (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 vaut 0.8Lorsque le diviseur est supérieur au 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 ne tient aucune fois, donc le dividende entier constitue le reste.
Défi
DébutantÉcris un code qui initialise trois variables, a (int), b (double) et c (int) avec les valeurs 9, 2.6 et 11 (respectivement).
Ensuite, initialise les variables suivantes :
d (int)qui contiendra le résultat du modulo deapar2e (int)qui contiendra le résultat du modulo deapar3f (double)qui contiendra le résultat du modulo debpar1.5g (double)qui contiendra le résultat du modulo debpar3.9h (int)qui contiendra le résultat du modulo decpar10
Observe le résultat et vois comment différents dividendes et diviseurs influent sur le résultat.
Essayez vous-même
#include <iostream>
#include <cmath>
int main() {
// Saisissez 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ésEntraînez-vous par vous-même : Compilateur C++ en ligne