Abschnittsübersicht

  • Hervorgehoben
    • Modulo - Division mit Rest

      Wir schauen uns die Division mit Rest etwas genauer an und wie wir diese beim Programmieren anwenden.

      Zum besseren Verständnis schauen wir uns folgende Tabelle an:

      Modulo

      Die Spalte Zahl ist die Zahlenreihe von 0 bis 9, diese soll einmal durch 2 und einmal durch 3 dividiert werden. Die Spalte :2 und :3 liefern dabei den Wert nach dem Dividieren. Die darauffolgende Spalte Rest gibt jeweils immer den Rest nach der Division an. Z.B. 3:2=1 Rest 1 oder 3:3 = 1 Rest 0 

      Allgemein wird es in der Programmierwelt als mod(Zahl, Teiler) geschrieben. In unserem Beispiel von eben ist es mod(3, 2) oder mod(3, 3).

      Hinweis: Wenn du dir die Spalten für den Rest ansiehst, fällt auf, dass es für die Division durch 2 zwei verschiedene Werte gibt und bei der Division durch 3 drei verschiedene Werte gibt.

    • Verwendung von mod() und if-else-Bedingung

      Bei der Erstellung deines Programms fallen dir sicher Wiederholungen für das Zeichnen der Striche auf. Der Unterschied ist immer die wechselnde Farbe.

      Also unser Ziel wird es sein eine Schleife zu haben, die 6-mal einen Strich zeichnet, dessen Farbe sich im Wechsel ändert.

      Wenn wir an die Tabelle denken für die Division mit Rest, wurden die Werte für mod(i, 2) farblich hervorgehoben. Diesen Wechsel wollen wir auch für unsere gestrichelte Linie.

      Um mit modulo zu rechnen, benötigen wir eine Variable z.B. myRest := mod(i, 2)

      i ist dabei die Laufvariable deiner for-Schleife. Also füge die die neue Variable innerhalb der for-Schleife ein.

      Im Anschluss daran wollen wir prüfen, ob der Rest 0 oder 1 ist.

      Wenn der Rest 0 ist soll die Farbe pink (21) werden.

      Wenn der Rest 1 ist soll die Farbe blau (7) werden.

      Beim Programmieren können wir solche Bedingungen erstellen, sie werden if-else-Bedingung genannt. Bevor wir diese Bedingung programmieren, benötigen wir noch eine weitere Variable für die Farbe. Diese Variable soll am Anfang unseres Programms erstellt werden. Sie kann z.B. myFarbe heißen und der Wert zu Beginn unseres Programms kann 0 sein. 

      var myFarbe := 0

      Nun wenden wir uns der for-Schleife wieder zu, in der du die Variable myRest stehen hast. Darunter folgt nun die if-Bedingung, in der du prüfst, ob myRest == 0 ist. Wenn die Prüfung den Wert wahr liefert, soll nun die Variable myFarbe := 21 werden. Sonst soll myFarbe := 7 werden.

      Der ProgrammCode könnte zum Beispiel wie folgt aussehen:

      function main() {
          var myFarbe := 0
          for(var i < 6) {
              var myRest := mod(i,2)
              if(myRest == 0) {
                  myFarbe := 21
              }else {
                  myFarbe := 7
              }
              turtle->setPenColor(myFarbe)
          }
      }

      Was fehlt ist noch der Strich, den die Turtle zeichnen soll.

    • In meinem Programm für einen Sternenhimmel arbeite ich mit zufälligen Zahlen. Die Anzahl der Zacken eines Sterns soll zufällig vom Computer gewählt werden. Da man beim Zeichnen meines Sterns aber eine ungerade Anzahl Zacken benötigt, muss ich zwischen ungerade und geraden Zahlen unterscheiden. Dafür verwende ich die Funktion modulo und Teile die Anzahl der Zacken durch 2. So erhalte ich bei einer geraden Anzahl 0 und bei einer ungerade Anzahl eine 1. Die Werte kann ich mit einer Bedingung prüfen und, wenn der Wert 0 ist, soll der Anzahl Zacken eine 1 hinzu addiert werden, sonst passiert nichts.

      function main() {
          turtle->setSpeed(5000)
          for(var j < 10) {
              var Zufall := random(10)
              var Spitzen := Zufall+5
              if(mod(Spitzen,2)==0) {
                  Spitzen :=Spitzen+1
              }
              else {
              }
              var winkelSpitze := 180/Spitzen
              var winkel := 180-winkelSpitze
              turtle->penUp()
              turtle->rightTurn(random(360))
              turtle->forward(random(200))
              turtle->penDown()
              var farbe := random(24)
              var groesse := random(200)
              turtle->setPenColor(farbe)
              for(var i < Spitzen) {
                  turtle->forward(groesse)
                  turtle->rightTurn(winkel)
              }
          }
      }
                                                                                    
    • Abschluss

      Du hast nun die wichtigsten Grundlagen und Funktionen für die Verwendung und Programmierung mit dem TurtleCoder kennengelernt. Denk dir eigene Projekte aus oder Formen, die du zeichnen möchtest.

      Viel Spaß dabei.

      Katrin Gerling