Menu
CoddyTech

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.2

Voici 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.8

Lorsque 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.5

Pourquoi ? Le diviseur ne tient aucune fois, donc le dividende entier constitue le reste.

challenge icon

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 de a par 2 
  • e (int) qui contiendra le résultat du modulo de a par 3
  • f (double) qui contiendra le résultat du modulo de b par 1.5
  • g (double) qui contiendra le résultat du modulo de b par 3.9
  • h (int) qui contiendra le résultat du modulo de c par 10

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;
}
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur C++ en ligne