Wiki: Mathe und Info

Unterrichtsmaterialien für Mathematik und Informatik

Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:sek-ii:e2:processing:syn-methode-parameter

Fachkonzept: Methode

Sich wiederholende Befehlsblöcke können zu so genannten Methoden zusammengefasst werden.

{Methode="void" Identifier "(" [Parameter {"," Parameter }] ")" "{" Programm"}".Parameter = Datentyp Identifier.}

Aus dem Syntax-Diagramm kann man entnehmen, dass Methoden mit dem Schlüsselwort void beginnen und dann einen Namen und eine Parameterliste in Klammern haben. Dies nennt man auch Methodenkopf. Danach kommt ein in geschweifte Klammern gepacktes Programm. Dieses Programm nennt man auch Methodenkörper.

Jede Methode definiert einen weiteren Befehl, den man in Processing nutzen kann. Somit könnt ihr Processing weitere Befehle beibringen, die über die Grundformen hinausgehen. Betrachtet z.B. das folgende Programm. Ihr erkennt sofort, dass Processing die Befehle rasen(), sonne() und haus(…) nicht kennt.

void setup() {
  size(400, 150);
}
 
void draw() {
  background(#AACCEE);
 
  rasen();  
  sonne();
 
  haus(10, 140);
  haus(110, 140);
  haus(210, 140);
  haus(310, 140);
}

Diese können allerdings leicht definiert werden:

void rasen() {
  fill(0, 255, 0);
  rect(-1, 130, 401, 20);
}
 
void sonne() {
  fill(255, 255, 0);
  circle(390, 10, 50);
}
 
void haus(int x, int y) {
  fill(255);
  rect(x, y - 50, 50, 50);
  fill(192, 0, 0);
  triangle(x, y - 50, x + 50, y - 50, x + 25, y - 75);
}

Die Bedeutung ist durch die Benennung klar. rasen() zeichnet die Rasenfläche des Bilds, sonne() die Sonne und haus(x, y) ein Haus an der angegebenen $(x|y)$-Position. Hierbei spielen die beiden Parameter x und y eine zentrale Rolle. Sie sind nichts anderes als Variablen, die beim Aufruf von z.B. haus(10, 140) auf die entsprechenden Werte x=10 und y=140 gesetzt werden.

Auch die beiden Grundkonstrukte void setup() { … } und void draw() { … } sind Methoden.

info/sek-ii/e2/processing/syn-methode-parameter.txt · Zuletzt geändert: 2022-09-19 19:52 von christian.weber