Aus Das deutschsprachige Scratch-Wiki
Diese Seite ist der zweite Projektteil der OER-Serie Projekt: Ada's Gedicht Generator. In dieser Einheit geht es darum, eigene Funktion (a.k.a. Subroutine, Methode) zu erstellen und damit Programme effizienter zu machen.
Voraussetzung: Absolvieren der ersten Einheit der OER-Serie Projekt: Ada's Gedicht Generator.
1. Vorbereitung
Einleitung: In dieser Einheit verbesserst du dein algorithmisches Denken. Du hast bisher erfolgreich Algorithmen zur Lösung eines Problems gefunden, aber wir können noch bessere Algorithmen finden. Bessere Algorithmen sind solche, die einfacher wiederverwendet oder verändert werden können. Dafür ist es wichtig, dass der Algorithmus übersichtlich - also "hübsch" - ist. Eine Möglichkeit, das zu erreichen, ist indem für verschiedene Abschnitte des Algorithmus "Funktionen" verwendet werden. Was das ist und wie man eine Funktion erstellt erfährst du gleich.
Aufgabe: Öffne dein Gedicht-Generator-Projekt aus der vorherigen Einheit. Falls noch nicht geschehen, erstelle eine neue Liste "Gedicht" in die du jede Zeile (zusätzlich zu dem was Ada sagt) speicherst.
Tipp: Damit Ada sagt was auch gespeichert wird, kannst du deine generierte Gedichtzeile in einer Variable zwischenspeichern.
2. Funktionen machen dein Programm hübsch
Funktionen
Immer wenn du Befehlsfolgen hast, die sich sehr ähneln, kannst du diesen Teil in eine Funktion auslagern, die du dann statt des Codes aufrufen musst. Das vereinfacht deinen Algorithmus deutlich! Aber die Befehlsfolgen sind nicht identisch, sondern nur fast, wie gehst du damit um? Dafür kann eine Funktion Parameter haben, wie z.B. der "sage"-Befehl, der Parameter hat, die festlegen was gesagt wird und für wie lange.
Ein Beispiel: In folgendem Code kommen zwei Schleifen vor, bei denen ein Objekt erst gedreht und dann bewegt wird. Die beiden Schleifen ähneln sich, nur die Anzahl der Wiederholungen und die Anzahl der Schritte der Bewegung sind unterschiedlich.
wiederhole (2) mal drehe dich nach rechts um (15) Grad gehe (100)er Schritt end wiederhole (4) mal drehe dich nach rechts um (15) Grad gehe (200)er Schritt
Jetzt kann man also eine Funktion erstellen, die ein Objekt wiederholt dreht und bewegt. Die Funktion braucht einen Parameter für die Anzahl der Wiederholungen und einen für die Anzahl der Schritte annimmt damit sie für verschiedene Fälle wiederverwendet werden kann.
In Scratch erstellt man eine Funktion unter "Meine Blöcke" und dann "Make a Block". Dann bastelt man sich einen eigenen Befehl zusammen, den man dann statt des sich ähnelnden Codes aufrufen kann:
Jetzt kannst du deine Funktion programmieren. Das nennt man die Definition der Funktion:
Du setzt die Parameter in die Befehlsfolge ein, damit sie variabel und für viele Situationen geeignet ist. Der Programmcode von vorhin wird jetzt stark vereinfacht, denn wir können einfach zweimal die Funktion mit verschiedenen Parametern aufrufen:
Und so funktioniert das auch für den Gedichts-Generator!
Aufgabe
Aufgabe: Betrachte deinen Code. Wo findest du Befehlsfolgen, die fast gleich aussehen? Lagere diese Befehlsfolgen in eine eigene Funktion mit Parametern aus.
3. Das gespeicherte Gedicht Zeichen für Zeichen aufsagen lassen
Aufgabe: Lass Ada das gespeicherte Gedicht Zeichen für Zeichen aufsagen.
Tipp: Lass das Programm starten, wenn du eine bestimmte Taste drückst.
Tipp: Du musst das Gedicht Zeichen für Zeichen und Zeile für Zeile durchlaufen. Nutze dafür Schleifen und Variablen die mitzählen, wo du gerade bist. Du beginnst bei Zeile 1, Zeichen 1. Nach der Ausgabe des 1. Zeichens aus Zeile 1 zählst du hoch: Zeichen 2. Und so weiter. Nach dem letzten Zeichen der Zeile erhöhst du die Zeilenzahl und setzt die Zeichenzahl auf 1 zurück.
Tipp: Ein Listen-Block hilft dir, an die X. Zeile zu kommen. Ein Operatoren-Block hilft dir, an das richtige Zeichen zu kommen.
[wiki=de:Projekt: Ada's Gedicht Generator Teil 2 - Funktion]Projekt: Ada's Gedicht Generator Teil 2 - Funktion[/wiki]