Math. Operatoren / Operatoren

%

addition-block

Block

Der % Block ist ein mathematischer Operator, der den Rest der Division von zwei Zahlen ausgibt. Es können fest Programmierte Zahlenwerte, analoge Eingänge oder analoge Variablen miteinander verrechnet werden. Der % Block selbst kann dann als analoger Wert in anderen Blöcken verwendet werden.

Wenn man mit der Maus über dem Block schwebt, dann erscheint ein kleiner Pfeil nach unten. Klickt man diesen mit der linken Maustaste, dann öffnet sich ein Dropdown Menü und der % Block kann folgende Blöcke umgewandelt werden:

  +
  -
  x
  /
  %


Auf diese wird allerdings in der entsprechen eigenen Block-Referenz eingegangen.

Erklärung

Wenn eine Zahl durch eine andere geteilt wird dann kann dabei ein Rest entstehen. Man sagt auch die Division "geht nicht auf". Normalerweise kann man sich dabei mit Kommazahlen und Brüchen helfen das korrekte Ergebnis zu ermitteln. Bei dem Modulo Operator geht es allerdings um den Rest. Damit kann zum Beispiel ermittelt werden ob eine Variable gerade oder ungerade ist. Wenn man eine gerade Variable durch 2 teilt dann bleibt kein Rest übrig. Der Modulo-Block wird dann 0. Wenn jedoch eine ungerade Zahl duch 2 geteilt wird, dann wird der Modulo Block 1.

Beispiel: 12 % 5 = 2
Erklärung: Man schaut welches Vielfache der rechten Zahl noch in die linke Zahl passt. In diesem Fall wäre das 10 (5 mal 2).
Dann schaut man welche Differenz noch zur linken Zahl ist. In diesem Fall 2 (von 10 zu 12 fehlen 2). Diese Zahl ist dann das Ergebnis der Modulo Operation.

Weiteres Beispiel: 27 % 8 = 3
Erklärung: 8 mal 3 sind 24. Von 24 zu 27 fehlen 3.

Code

Im Code kann der % Block mit einem einfachen Prozent-Zeichen (%) realisiert werden. Die beiden zu verrechnenden analogen Größen werden jeweils vor und nach dem Operator eingefügt.
Beispiel: Es soll geprüft werden ob die Variable var durch 5 teilbar ist oder nicht. Das Ergebnis soll dann im seriellen Monitor ausgegeben werden. Logik: Wenn var durch 5 teilbar ist, dann würde die Operation var % 5 Null ergeben. Diese Bedingung wird hier geprüft.

In ArduBlock:

beispiel-modulo

Im Code:

if (( ( var % 5 ) == 0 )) {
  Serial.print("Die Variable var ist durch 5 teilbar! ");
  }
else {
  Serial.print("Die Variable var ist NICHT durch 5 teilbar! ");
  }
}