Mod-functie
Een mod-functie deelt twee getallen door elkaar en geeft de rest terug. De functie vereist dezelfde invoer als een delingsbewerking, maar geeft de "overgebleven" waarde terug in plaats van het resultaat van de deling. Bijvoorbeeld:
- 7 mod 3 = 1
- 8 mod 3 = 2
Als er geen rest is, is het resultaat nul.
- 9 mod 3 = 0
In wiskundige formules wordt de mod- of "modulo"-operator vaak weergegeven met een procentteken. Zo kan 7 mod 3 worden geschreven als de volgende uitdrukking:
- 7 % 3 = 1
In de informatica kan een mod-functie worden geschreven als mod(x,y), of op een vergelijkbare manier, afhankelijk van de programmeertaal. Bijvoorbeeld:
- mod(7,3) = 1
De bovenstaande functie deelt de eerste waarde (deeltal) door de tweede waarde (deler) en geeft de rest terug. Omdat 7 ÷ 3 = 2r1, is het resultaat van mod(7,3) 1.
Toepassingen van mod-functies
De mod-functie heeft verschillende toepassingen in computerprogramma's. Omdat het resultaat kleiner moet zijn dan de deler, kan de functie resultaten beperken tot een specifiek bereik. Zo kan mod(x,4) alleen 0, 1, 2 of 3 teruggeven, ervan uitgaande dat x een geheel getal is. De functie is handig om elke n-de waarde te controleren of resultaten in een beperkt aantal "bakken" in te delen.
In de meeste programmeertalen wordt 0 als onwaar geëvalueerd en worden andere getallen als waar geëvalueerd. Daarom kan een mod-functie een booleaans resultaat geven — false als twee getallen deelbaar zijn zonder rest en true als dat niet zo is. Hieronder staat een voorbeeld van een mod-functie binnen een if-instructie:
if (mod(x,5)) then { ... }
Als x niet deelbaar is door 5 zonder rest, wordt de code in de then-clausule uitgevoerd. Als x wel deelbaar is door vijf — 5, 10, 15, 20 enzovoort — wordt de code niet uitgevoerd.
NOTE: Mod-functies hebben vaak twee gehele getallen als argumenten. Drijvende-kommagetallen zijn echter ook toegestaan. Twee gehele waarden leveren altijd een geheel getal op, maar een of meer gebroken invoerwaarden kunnen een gebroken resultaat opleveren. Zo is 8 % 2.5 = 0.5, omdat 8 ÷ 2.5 = 3r0.5.
Test je kennis