12. Prozeduren
Wenn du es bis hierher geschafft hast, dann bis du schon sehr weit gekommen und weisst bereits viel über Logo. Wir haben "Prozeduren" bereits in der Lektion "Die Schildkröte lernt" kennengelernt.
Lass uns zuerst die Zeichenfläche löschen
Die Definition einer Prozedur ohne Parameter ist: lerne PROZEDURNAME BEFEHLE. Dabei ist PROZEDURNAME der Name der Prozedur und BEFEHLE sind die Befehle, welche die Schildkröte ausführen soll. In der Lektion "Die Schildkröte lernt" haben wir bereits eine Prozedur mit dem Namen "gestrichelt" wie folgt definiert: lerne gestrichelt wiederhole 5 [breite 1 vw 10 breite 3 vw 10] ende. Hier ist PROZEDURNAME "gestrichelt" und die BEFEHLE sind wiederhole 5 [breite 1 vw 10 breite 3 vw 10].
Definiere eine neue Prozedur mit dem Namen dreieck welche ein Dreieck mit einer Seitenlänge von 100 Punkten zeichnet
Herzlichen Glückwunsch, du hast soeben eine neue Prozedur mit dem Namen dreieck erstellt - lass sie uns gleich verwenden. Wenn wir eine Prozedur ohne Parameter verwenden wollen, müssen wir nur den Namen der Prozedur schreiben.
Rufe die Prodzedur dreieck auf
Wir können auch Prozeduren definieren, welche Eingabeparameter erwarten. Die Definition ist wie folgt: lerne PROZEDURNAME :INPUT1 :INPUT2 ACTIONS ende. Wir können so viele Parameter verwenden, wie wir wollen (als wir dreieck definiert haben, haben wir 0 Parameter definiert). Wir können dann die Werte der Parameter in den Befehlen verwenden.
Schreibe das Folgende in die Befehlsfläche: lerne gehe :vwinput vw :vwinput ende
Wir haben die Prozedur gehe definiert: lerne gehe :vwinput vw :vwinput ende. Das ":" sagt uns, dass wir in der Prozedur einen Parameter mit dem Namen vwinput haben. Die Zahl, welche dann beim Aufruf der Prozedur an dieser Stelle steht, wird in einer Variablen mit diesem Namen gespeichert. Versuche mal gehe 50 oder gehe 100. Merke: wenn di keinen Parameter angibst, wird ein Fehler ausgegeben, weil die Prozedur genau einen Parameter erwartet.
Führe die Prozedur gehe mit dem Wert 150 auf
In den Lektionen "Polygone" haben wir eine Menge von Formen mit unterschiedlicher Anzahl Ecken erstellt. Der einzige Unterschied zwischen diesen Formen war die Anzahl Ecken und der Winkel zwischen den Seiten um welchen die Schildkröte gedreht werden musste. Für das Dreieck haben wir geschrieben wiederhole 3 [vw 100 rs 360/3], für das Rechteck wiederhole 4 [vw 100 rs 360/4]. Generell können wir also ein Polygon mit X Ecken mit den Befehlen wiederhole X [vw 100 rs 360/X] zeichnen.
Schreibe eine Prozedur mit dem Namen polygon welche einen Parameter mit dem Namen :ecken erwartet. Sie soll ein Polygon zeichnen mit der in :ecken angegeben Zahl an Ecken und einer Seitenlänge von 100 Punkten. Verwende den rs- Befehl
Nun ist es für uns sehr einfach, eine Menge von Polygonen zu zeichnen. Wir müssen nur die polygon-Prozedur mit dem richtigen Parameter aufrufen.
Zeichne ein Quadrat