Informatik-Box

Was du in diesem Schritt lernst

  • Grundstruktur eines Processing-Programms.
  • Verwendung von Befehlen in Java.

Wir definieren einen Algorithmus durch seine Eingabe und die erwartete Ausgabe. Zum Beispiel:

Eingabe: zwei ganze Zahlen (a und b)
Ausgabe: die Summe der Zahlen

Dieser Algorithmus lässt sich in einer ersten Version in Processing so programmieren:

// Eingabe: zwei ganze Zahlen (a und b)
int a = 5;
int b = 3;
 
// Ausgabe: die Summe der Zahlen
print(a + b);
📝 Arbeitsauftrag

Probier den Algorithmus in Processing aus.

Du siehst die Ausgabe der Summe im Textfenster unten. Verändere die Zahlen für a und b und starte das Programm erneut.

Zeilen, die mit // beginnen, werden von Processing ignoriert. Sie dienen als Kommentare, um das Programm besser zu verstehen.

Dir ist sicher aufgefallen, dass sich beim Start ein kleines Fenster geöffnet hat. Processing ist auf Grafikprogrammierung ausgelegt. In dieses Fenster kannst du mit den Befehlen von Processing zeichnen und so "grafische Algorithmen" programmieren. Hier ist ein Beispiel:

Eingabe: keine
Ausgabe: Zeichne ein Quadrat der Kantenlänge vierzig
// Zeichne ein Quadrat der Kantenlänge vierzig
line(0,0, 40,0);
line(40,0, 40,40);
line(40,40, 0,40);
line(0,40, 0,0);
📝 Arbeitsauftrag
  1. Probier den Algorithmus in Processing aus.

  2. Mach dir klar, was die Zahlen in den line-Befehlen bedeuten. Wofür stehen die Zahlenpaare?

  3. Erstelle einen Algorithmus zu dieser Definition:

    Eingabe: zwei Zahlen
    Ausgabe: ein Rechteck mit den angegebenen Kantenlängen
🔎 Lösung

Die Zahlenpaare stehen für die Anfangs- und Endkoordinaten der zu zeichnenden Linie. Das Zeichenfenster besitzt also ein Koordinatensystem, in dem die Koordinaten Punkte im Fenster darstellen.

Mit diesem Wissen lässt sich das Programm umschreiben, indem die passenden Koordinaten gegen die Eingaben a bzw. b getauscht werden.

// Breite / Höhe des Rechtecks
int a = 40;
int b = 80;
 
// Zeichne ein Rechteck der Kantenlängen a und b
line(0,0, a,0);
line(a,0, a,b);
line(a,b, 0,b);
line(0,b, 0,0);

🧶 Zusatzaufgabe

Modifiziere das Programm so, dass das Rechteck nicht oben links gezeichnet wird, sondern an der Position (x, y), die auch eine Eingabe des Algorithmus ist.

🔎 Lösung
// Breite / Höhe des Rechtecks
int a = 40;
int b = 80;
// Position des Rechtecks
int x = 10;
int y = 20;
 
// Zeichne ein Rechteck der Kantenlängen a und b
// an der Position (y|y)
line(x,y, x+a,y);
line(x+a,y, x+a,y+b);
line(x+a,y+b, x,y+b);
line(x,y+b, x,y);

🧶 Zusatzaufgabe

Modifiziere das Programm nun so, dass sich nicht die obere linke Ecke des Rechtecks am Punkt (x, y) befindet, sondern das Zentrum.

🔎 Lösung
// Breite / Höhe des Rechtecks
int a = 40;
int b = 80;
// Position des Rechtecks
int x = 10;
int y = 20;
 
// Zeichne ein Rechteck der Kantenlängen a und b
// an der Position (y|y)
line(x-(a/2),y-(b/2), x+(a/2),y-(b/2));
line(x+(a/2),y-(b/2), x+(a/2),y+(b/2));
line(x+(a/2),y+(b/2), x-(a/2),y+(b/2));
line(x-(a/2),y+(b/2), x-(a/2),y-(b/2));

Teilbare URL erstellen

Abschnitte auswählen