Menu
Coddy logo textTech

Operatore modulo

Fa parte della sezione Fondamenti del percorso C++ di Coddy. Lezione 17 di 74.

L'operatore modulo % restituisce il resto di una divisione. In C++ si usa con una sintassi semplice:

result = dividend % divisor;
  • dividend: Il numero da dividere.
  • divisor: Il numero per cui si divide il dividendo.
  • result: Il resto della divisione.

Per esempio:

result = 10 % 3;

Qui, 10 viene diviso per 3. 3 entra in 10 tre volte, con un resto di 1. Quindi, result sarà 1.

Di solito il modulo si usa per verificare se un numero è pari o dispari:

  • Se un numero è pari, dividendolo per 2 il resto sarà 0.
  • Se un numero è dispari, dividendolo per 2 il resto sarà 1.

Quando lavori con numeri in virgola mobile (double) in C++, non puoi usare direttamente l'operatore modulo %. Devi invece usare la funzione fmod() della libreria <cmath>. Funziona in modo simile all'operatore modulo, ma mantiene la precisione decimale. Per esempio:

#include <cmath>

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

Ecco come funziona: 2.0 sta in 5.2 due volte (4.0) e il resto è 1.2 (5.2 - 4.0 = 1.2).

Un altro esempio:

double result = fmod(7.8, 3.5);
// result è 0.8

Quando il divisore è maggiore del dividendo, il risultato è uguale al dividendo. Questo vale sia per % sia per fmod().

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

Perché? Il divisore ci sta zero volte, quindi l'intero dividendo è il resto.

challenge icon

Sfida

Principiante

Scrivi un codice che inizializzi tre variabili, a (int), b (double) e c (int) con i valori 9, 2.6 e 11 (rispettivamente).

Dopodiché, inizializza le seguenti variabili:

  • d (int) che conterrà il risultato di a modulo 2 
  • e (int) che conterrà il risultato di a modulo 3
  • f (double) che conterrà il risultato di b modulo 1.5
  • g (double) che conterrà il risultato di b modulo 3.9
  • h (int) che conterrà il risultato di c modulo 10

Controlla il risultato e osserva come dividendi e divisori diversi influiscono sul risultato.

Provalo tu

#include <iostream>
#include <cmath>

int main() {
    // Scrivi il tuo codice qui sotto
    
    
    // Non modificare la riga qui sotto
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore C++ online