Wiki: Mathe und Info

Unterrichtsmaterialien für Mathematik und Informatik

Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:sek-ii:e2:processing:p5-schleifen

Wiederholungen (Schleifen)

Wiederholungen (Schleifen)

Wiederholungen sind ein Alltagsphänomen. Es beginnt schon damit, dass man jeden Tag zur Schule kommen muss. Oder dass man jeden Tag drei mal etwas isst. Oder dass man Sachen (wie z.B. Geburtstagsgeschenke) zählen muss. All das besteht aus sich wiederholenden Elementen.

Nimm z.B. dieses "Bastelanleitung":

  1. Nimm dir ein Blatt Din-A4-Papier.
  2. Falte es in der Hälfte zusammen. Du hast nun ein doppeltes Blatt Din-A5-Papier.
  3. Wiederhole Schritt 2 so lange, bis du ein Din-A8-Papier bekommen hast.

Diese Anleitung enthält auch eine Wiederholungsanweisung. Was das mit Informatik zu tun hat, werden wir in der kommenden Unterrichtsstunde erarbeiten.

Aufgabe 1 - Theorie

Lest das Fachkonzept: Wiederholung. Beantwortet die Fragen unten und notiert die Antworten dazu in euerm Gruppendokument.

  1. Was ist eine Wiederholung?
  2. Was unterscheidet sie von einer Verzweigung?
  3. Welche verschiedenen Wiederholungstypen gibt es?
  4. Wie unterscheiden sich diese?
Aufgabe 2 - verschiedene Schleifen

a) Lest die Syntax: while-Schleife. Beantwortet die Fragen unten und notiert die Antworten dazu in euerm Gruppendokument.

  1. Aus welchen Elementen besteht eine while-Schleife?
  2. Wie können komplexe Bedingungen abgefragt werden?

b) Lest die Syntax: for-Schleife. Beantwortet die Fragen unten und notiert die Antworten dazu in euerm Gruppendokument.

  1. Aus welchen Elementen besteht eine for-Schleife?
  2. Was ist der Unterschied zwischen einer for- und einer while-Schleife?

c) Erstellt eine Tabelle, in welchen Fällen man sich für eine bestimmte Schleife entscheiden sollte (Vor/Nachteile der beiden Schleifen).

Aufgabe 3

Erzeugt dieses Muster mit einer der beiden Schleifen:

Aufgabe 4

Erstelle mit Hilfe einer Schleife ein Programm, das ein Band aus zufällig gefärbten Rechtecken durchlaufen lässt.

Lösungsvideo Aufgabe 3
Lösungsvideo Aufgabe 4
Aufgabe 5

Erstelle mit Hilfe einer for-Schleife ein Programm, dass einen Farbverlauf von Weiß nach Schwarz auf einer Leinwand 255*255 Pixeln abbildet.

Aufgabe 6

Erzeuge mittels einer Folge von Kreisen und einer while-Schleife die Illusion einer Kugel:

Aufgabe 7

Erzeugt mit einer for-Schleife dieses Muster:

Aufgabe 8

Erzeugt mit einer (oder mehreren?!?!) for-Schleife(n) dieses Muster:

Verschachtelte Schleifen

Um beispielsweise interessante Muster zu erzeugen, kann man for-Schleifen auch ineinander verschachteln. Betrachten wir dazu folgendes Beispiel:

void setup() {
  size(200, 200);
}
 
void draw() {
  background(200);
  stroke(255, 0, 0);
  strokeWeight(5);
 
  for (int x = 20; x < width; x += 20) {
    for (int y = 20; y < height; y += 20) {
      point(x, y);
    }    
  }
}

Die äußere Schleife legt den $x$-Wert der ersten Reihe von Punkten fest. Die innere Schleife zeichnet nun alle 20 Pixel einen Punkt (Änderung des $y$-Werts). Nach Abarbeitung der inneren Schleife springt das Programm wieder in die äußere Schleife und ändert den $x$-Wert um 20 Pixel. Daraufhin zeichnet die innere Schleife die zweite Reihe von Punkten, usw. Nach Erreichen der Abbruchbedingung der ersten Schleife bricht das Programm ab.

Im Prinzip kann man beliebig viele Schleifen ineinander verschachteln. Zu beachten ist dabei, dass mit der Zahl der Schleifen unter Umständen die Laufzeit des Programms deutlich zunimmt. Hier noch ein schönes Beispiel:

void setup() {
  size(200, 200);
}
 
void draw() { 
  background(255);
  stroke(255, 0, 0);
  strokeWeight(1);
  rectMode(CENTER);
 
  for (int y = 9; y < height; y += 20) {
    for (int x = 9; x < width; x += 20) {
      for (int d = 18; d > 0; d -= 4) {
        rect(x, y, d, d); 
      }
    }    
  }
}
Aufgabe 9 - Code Style 2
Nachdem du nun etwas besser im Bereich Schleifen Bescheid weißt, ist es Zeit sich noch einmal den Code Style anzuschauen. Ließ dir dazu das Fachkonzept: Code Style 2 durch.
Aufgabe 10

Experimentiere mit dem letzten Programmbeispiel um weitere Muster zu erzeugen. Beispiele:

Aufgabe 11

Erzeuge folgenden Effekt mit Hilfe von zwei for-Schleifen:

Aufgabe 12

Erstelle ein Programm für folgendes Grundmuster mit Hilfe einer Schleife.

Aufgabe 13

Variiere das Grundmuster aus Aufgabe 12.

Aufgabe 14

Wenn man mit dem Muster aus Aufgabe 3 herumspielt, d.h. mit den Parameterwerten experimentiert, kann man sehr interessante dynamische Muster erzeugen. Schaut euch die Lösung dieser Aufgabe an und experimentiert mit den verschiedenen Werten, um andere Muster zu erzeugen.

Lösung Aufgabe 14
int d = 0;
int t = 0;
 
//Änderungsmaß für t
int a = 0;
int b = 5;
 
void setup() {
  size(400, 400);
  frameRate(30);
}
 
void draw(){
  background(0);
 
  //Höhe der Ellipse ändert sich bei jeder Aktualisierung von draw()
  t = t - a;
 
  noFill();
  stroke(255, 255, 0);
  strokeWeight(1);
 
  while (d < width) { 
    ellipse(width / 2, height / 2, d, t);
    d += 10;
    t += 10;
  }
 
  //Nach Durchlaufen der while-Schleife werden die Parameter wieder auf den Startwert gesetzt.
  d = 0;
  t = 0;
 
  //Umkehrpunkte des Musters festlegen
  a += b;
  if (a > width) {
    b = -5;
  }
  if (a < 0) {
    b = 5;
  }
}
Aufgabe 15

Erzeuge weitere psychedelische Muster…

info/sek-ii/e2/processing/p5-schleifen.txt · Zuletzt geändert: 2023-05-12 08:35 von christian.weber