L'operatore modulo in C (rappresentato come il simbolo '% ') agisce come una sorta di divisione . Tuttavia, invece di dividere due numeri e restituire il quoziente per l'utente, l' operazione di modulo divide due numeri e restituisce il resto come un intero. In questo esempio , due operazioni di modulo, si verificano , ciascuno per la restituzione di un valore identico :
int x = 11 % 4 //resto di 11/4 = 3
int y = 13 % 5 //resto di 13/5 = 3
Utilizzando modulo per determinare Pari /Dispari
Poiché l'operazione di modulo determina il resto l'operazione di divisione dei due numeri , sembra logico che l' operatore modulo essere usato per determinare o persino numeri dispari . Un numero pari , per definizione , è un numero divisibile per due. Pertanto , se un numero che restituisce zero per un resto quando modulo 2 . Più semplicemente , un numero " n" è , anche se " n% 2" è uguale a zero . Ad esempio, il codice definisce una funzione che prende un intero e restituisce un intero ( 0 o 1 ) a seconda se il numero è pari o no.
Int isEven ( int x ) per
{
ritorno ( x % 2);
}
un Pari o Dispari Numero funzione generatrice
Utilizzando il operazione di modulo , allora diventa abbastanza semplice per creare una funzione che genera pari o dispari numeri . Un programmatore potrebbe trovare utile per generare un campo di numeri pari o dispari . In questo caso , un semplice ciclo for e una dimensione del campo inserito dall'utente sono tutto quello che serve per creare un insieme di numeri :
vuoto evenGenerate ( int size ) per
{
int i = 0;
per (i , i < = dimensione ; i + + ) per
{
if (i % 2 == 0 ) per
cout << i << endl; }
}
Questa funzione genera numeri pari . Il programmatore sarebbe solo cambiare l' istruzione "if" per leggere " if (i % 2 == 1) " per generare numeri dispari .
Alternative al Modulo
Modulus sé non è una semplice operazione . Piuttosto , il modulo contiene tre calcoli matematici in uno. Questo perché l' operazione " x % y " uguale realmente " x - . Y * ( x /y) " Sapendo questo , un programmatore potrebbe rompere l'operazione , o trovare il modo di incorporare le parti dell'operazione con altre operazioni per ottimizzare il tempo . Tuttavia, per uso generale e facilità di codifica l'operatore modulo funziona bene . Il seguente è un esempio dei due metodi insieme in C :
int x = 10 % 2; //10/2 = 5 senza resto
int y = 10 - ( 2 * ( 10/2 ) ) ; //Al fine di funzionamento , 10/2 = 5; 5 * 2 = 10; 10 - 10 = 0 resto
Programmazione © www.354353.com