Die Programmiersprache C wurde als eine lesbare , System- Design-Sprache für Programmierer , um mit der Software-Entwicklung arbeiten konzipiert. Die Syntax von C und Operationen (wie mathematische Ausdrücke und Schleifen -Strukturen) sind intuitiver zu einem Computer-Programmierer arbeiten an komplexen Software . Einfache mathematische Operationen wie der Modulo (oder Rest ) Betrieb erfordern ein einzelnes Symbol , und ermöglichen es Programmierern, Funktionen, die geraden und ungeraden Zahlen berechnen zu entwickeln. C Modulus Operator
Die Modulo-Operator in C (dargestellt als " % "-Symbol ) fungiert als eine Art der Teilung. Anstatt jedoch zwei Teilen Zahlen und Rücksendung der Quotient der Benutzer teilt die Modulo-Operation zweier Zahlen und gibt den Rest als eine ganze Zahl ist. In diesem Beispiel kommen zwei Modul Operationen , die jeweils bei der Rückkehr einen identischen Wert :
int x = 11% 4 //Rest der 11/4 = 3
int y = 13 % 5 //Rest der 13/5 = 3
Mit Modulus zu Gerade /Ungerade Zahlen
bestimmen, weil der E- Betrieb bestimmt den Rest der Division Betrieb der beiden Zahlen , liegt es nahe , dass der Modulo-Operator verwendet, um gerade oder ungerade Zahlen zu bestimmen. Eine gerade Anzahl , per Definition, ist eine beliebige Zahl durch zwei teilbar . Deshalb, wenn eine Zahl, die eine Null liefert einen Rest, wenn modulo 2 . Einfacher ist eine Anzahl "n" , selbst wenn " n % 2" gleich null ist . Zum Beispiel legt dieser Code eine Funktion , die einen Integer übernimmt und gibt eine ganze Zahl (0 oder 1) an , ob die Zahl sogar.
Int IsEven (int x ) {
return ( x % 2); }
eine gerade oder ungerade Anzahl erzeugende Funktion
Verwendung der Modulo-Operation , dann wird es ganz einfach, eine Funktion, die entweder gerade oder ungerade Zahlen erzeugt erstellen. Ein Programmierer könnte es sinnvoll sein, ein Feld gerade oder ungerade Zahlen zu generieren. In diesem Fall sind eine einfache for-Schleife und einem vom Benutzer eingegebenen Feld Größe alles, was benötigt wird, um eine Sammlung von Zahlen zu erstellen ist :
nichtig evenGenerate (int size) {
< p> int i = 0;
für (i; i < = size ; i + +) {
if ( i % 2 == 0)
cout << i << endl; }
}
Diese Funktion erzeugt geraden Zahlen . Der Programmierer würde einfach ändern " if"-Anweisung zu lesen "if ( i % 2 == 1) " zu ungeraden Zahlen zu generieren.
Alternativen zu Modulus
Modulus selbst ist nicht ein einfacher Vorgang . Vielmehr enthält drei Modul mathematische Berechnungen in einem. Dies liegt daran, die Operation "x % y" wirklich gleich " x - . Y * ( x /y) " Mit diesem Wissen könnte ein Programmierer brechen den Vorgang , oder Wege finden, um die Teile des Betriebs mit anderen Operationen zu übernehmen , um Zeit zu optimieren. Doch für den allgemeinen Gebrauch und einfache Kodierung des Modulo-Operator funktioniert gut. Das folgende dient als Beispiel der beiden Methoden miteinander in C:
int x = 10 % 2 //10/2 = 5 ohne Rest
int y = 10 - (2 * (10 /2) ); //In der Reihenfolge der Betrieb , 10/2 = 5; 5 * 2 = 10, 10 - 10 = 0 Rest