3.1.4 Lösungen
 
Aufgabe 1
Download:
Muster2.java

Die innere Schleife zeichnet ein kleines Quadrat. Die äußere Schleife sorgt dafür, dass eine Zeile dieser Vierecke gezeichnet werden.


 

Aufgabe 2
Download:
Kreise1.java

Kreise2.java
Zu beachten ist, dass die Turtle immer die richtige Orientierung und den richtigen Startpunkt zum Zeichnen des Kreises hat. Die Orientierung muss nur einmal gesetzt werden, da nach dem Zeichnen eines Kreises, die Turtle automatisch wieder die gleiche Orientierung hat. Mit der jumpTo()-Methode wird die Turtle gesetzt. Dabei ist die Sprungweite gerade der Radius, der bei jedem Schleifendurchgang um 10 wächst. Es gibt natürlich mehrere Möglichkeiten das Zeichnen zu realisieren. Die erste findet man im Download Kreise1.java
    public void zeichne() {
        for (int i = 10; i <= 100; i += 10){
          t1.jumpTo(i, 0);
          t1.circle(i);
        }

    }

Die zweite findet man im Download Kreise2.java.

    public void zeichne() {
        t1.right(270);
        for (int i = 1; i <= 10; i++){
          t1.jumpTo(0,10*i);
          t1.circle(10*i);
        }

    }
Aufgabe 3
Download:
Gitter.java
    public void zeichne() {
        double x = -150, y = 100;

        while(x<=150){
          t1.jumpTo(x,y);
          t1.moveTo(x,-100);
          x += 20;
        }
        x = -150; y = 100;
        while(y>=-100){
          t1.jumpTo(x,y);
          t1.moveTo(150,y);
          y -= 20;
        }
    }

Vor dem Eintritt in die Schleife muss die Turtle jedes Mal in die linke obere Ecke des Gitters gesetzt werden.
 

Aufgabe 4
Download:
Muster3.java
Wir verwenden drei Schleifen. Die innerste Schleife dient dazu das einzelne Quadrat zu zeichnen. Die 'mittlere' füllt eine Zeile mit den Quadraten. Die äußere schließlich erzeigt die richtige Anzahl von Zeilen.  Natürlich kann man, in Anlehnung an Aufgabe 1 die while-Schleifen durch entsprechende for-Schleifen ersetzen.
public void zeichne() {
  t1.right(90);
  double x=-200;
  double y=200;
  t1.jumpTo(x,y);
  while(y>-200){
    while(x<200){
      for (int i=0; i < 4; i++){
        t1.forward(15);
        t1.right(90);
      }
      x+=20;
      t1.jumpTo(x,y);
    }
    x=-200;
    y-=20;
    t1.jumpTo(x,y);
  }
}
Aufgabe 5
Download:
Muster4.java
Das Muster wird durch den folgenden Kode erzeugt:

t1.right(90);
t1.forward(20);
t1.right(90);
t1.forward(20);
t1.right(90);
t1.forward(15);
t1.right(90);
t1.forward(10);
t1.right(90);
t1.forward(5);
t1.right(90);
t1.forward(5);
t1.right(270);
t1.forward(5);
t1.right(270);
t1.forward(10);
t1.right(270);
t1.forward(15);
t1.right(270);
t1.forward(20);
 

  Danach setzen wir unser Grundelement 12 mal untereinander. Das erreichen wir am einfachsten in einer Schleife:
for (int y = 150; y > -150 ; y-=25){
  t1.jumpTo(x,y);
  //hier steht die Sequenz für das Grundelement          
  t1.right(180); 
}

Gleich Zu Beginn der Schleife muss die Turtle richtig positioniert werden. Der y-Wert ändert sich dabei von Schleifendurchgang zu Schleifendurchgang. Welchen Wert dabei x unverändert hat, erfahren wir dann im nächsten Schritt. Erwähnen müssen wir noch, dass wir am Ende eines jeden Schleifendurchgangs wir die Turtle wieder richtig orientieren.

Im nächsten Schirtt brauchen wir nur noch dafür sorgen, dass das, was wir bisher gemacht haben sich in x-Richtung noch genügend oft wiederholt. Das erreichen wir dadurch, dass wir unsere Schleife in eine weitere Schleife einbauen:

for (int x = -150; x<= 150;x+=25){
   // Hier steht der Code von oben
}
  Hier erkennen wir nun auch, wo die Variable x definiert und initialisiert wird. Die gesamte zeichne()-Methode hat damit die folgende Gestalt:
 
  for (int x = -150; x<= 150;x+=25){
   for (int y = 150; y > -150 ; y-=25){
      t1.jumpTo(x,y);
      t1.right(90);
      t1.forward(20);
      t1.right(90);
      t1.forward(20);
      t1.right(90);
      t1.forward(15);
      t1.right(90);
      t1.forward(10);
      t1.right(90);
      t1.forward(5);
      t1.right(90);
      t1.forward(5);
      t1.right(270);
      t1.forward(5);
      t1.right(270);
      t1.forward(10);
      t1.right(270);
      t1.forward(15);
      t1.right(270);
      t1.forward(20);
      t1.right(180); //wieder in Ausgangsrichtung
  
}
zu 3.2 Verzweigungen
3.2.1 Einfache Verzweigung
zur Startseite www.pohlig.de  (C) MPohlig 2006