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:

Eigenen-block-erstellen.png

Jetzt kannst du deine Funktion programmieren. Das nennt man die Definition der Funktion:

Funktion-beispiel.png

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:

Funktionsaufruf-beispiel.png

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.


Code zum Einbinden ins Forum:
[wiki=de:Projekt: Ada's Gedicht Generator Teil 2 - Funktion]Projekt: Ada's Gedicht Generator Teil 2 - Funktion[/wiki]

Kategorie:En-Link

Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.