### Unterprogramme mit/ohne Übergabeparameter ###

Peetie muss vom Mars verschwinden. Dazu müssen wir ihn erst auf Vordermann bringen und ihn einem ausgiebigen Wartungsprogramm unterziehen …

Dr. Andy White ist immer noch überzeugt davon, dass die Aliens »in friedlicher Absicht« gekommen sind. Ha, ha. Schau doch mal Peetie an - völlig zerbeult. In jedem Fall wird es Zeit, dass Peetie sich daran macht, den Mars zu verlassen, und dazu braucht er ein paar effiziente Unterprogramme.

Was sind Unterprogramme?

Unterprogramme sind eigenständige Programmteile, die mehrmals aufgerufen werden können. Dadurch spart man Code und alles wird übersichtlicher. Schau zum Beispiel dieses Programm an:

Dreimal passiert das Gleiche, nämlich dreimal »geradeausGehen«. Würden wir statt 0.35 Sekunden eine Sekunde warten wollen, müssten wir das an drei Stellen ändern.

Deshalb schreiben wir ein Unterprogramm, das einmal »geradeausGehen« ausführt:

Dieses Unterprogramm führen wir dreimal (oder noch öfter) aus:

Das ist nicht nur viel übersichtlicher und wartungsfreundlicher als der Sermon oben - man kapiert auch sofort, was Peetie tun soll (nämlich dreimal geradeaus gehen).

Mission 60: Rückblick - Wartungsprogramm

Bevor wir Peetie nun mit Unterprogrammen richtig schlau machen, schauen wir uns mal an, wie das früher lief. Wie wir wissen, wurde Peetie in Dr. Whites Werkstatt zusammengebaut und regelmäßig gewartet. Dieses Programm sollte etwas optimiert werden.

Definiere ein Unterprogramm drehen und implementiere es in Peeties Wartungsprogramm.

Oft ist es hilfreich, wenn Unterprogramme als Bezeichnung Verben erhalten - »drehen« ist besser als »90grad«, »berechneErgebnis« ist besser als »Zahlen«

Auch in der Bezeichnung von Unterprogrammen vermeiden Profi-Programmierer Leerzeichen, Umlaute und Sonderzeichen (wie bei Variablen).

Los geht's! [Scratch-Szenario in neuem Fenster öffnen]

Lösungsvorschlag (kommt im Jahr 2037)

Mission 61: Schnellere Energiesuche

Peetie muss die Suche nach Batteriezellen beschleunigen. Wir haben ein (etwas unübersichtliches …) Programm entwickelt, das wir aber noch optimieren müssen.

Entwickle die angegebenen Unterprogramme und verwende sie. Teste, ob das Programm nach dem Umbau noch so läuft wie zuvor.

Los geht's! [Scratch-Szenario in neuem Fenster öffnen]

Lösungsvorschlag (kommt im Jahr 2037)

Mission 62: Optimiertes Wartungsprogramm

Gerade wollten wir einen Plan schmieden, wie Peetie den Mars verlassen kann, da kommt dieser #!@&-General Spirin und verlangt, dass das Wartungsprogramm optimiert wird. Peetie soll sich in den einzelnen Wartungszyklen unterschiedlich oft drehen. Wer braucht denn so was jetzt? Dr. White tobt. Na, zum Glück geht es schnell.

Parameterübergabe

Wir übergeben dem Unterprogramm einen Wert - nämlich wie oft Peetie sich drehen soll. Diesen Wert kann das Unterprogramm verwenden:

Einen solchen Wert nennen wir Übergabeparameter. Der bekommt - wie eine ordentliche Variable - einen Namen, im Beispiel ist das anzahl

Erstelle ein Unterprogramme drehen, das einen Übergabeparameter namens anzahl bekommt und verwende es.

Los geht's! [Scratch-Szenario in neuem Fenster öffnen]

Lösungsvorschlag (kommt im Jahr 2037)

Mission 63: Perfektes Wartungsprogramm

Neben der Anzahl an Drehungen wollen wir auch die Gradzahl übergeben. Dazu geben wir dem Unterprogramm einfach zwei Übergabeparameter:

Erstelle ein Unterprogramm drehen, das ZWEI Übergabeparameter namens anzahl und grad bekommt und verwende es.

Los geht's! [Scratch-Szenario in neuem Fenster öffnen]

Lösungsvorschlag (kommt im Jahr 2037)

Mission 64: Die Story

Manchmal muss man eine Geschichte einfach erzählen lassen … Und das geht so:

Setze die folgenden Programme um und teste sie.

Los geht's! [Scratch-Szenario in neuem Fenster öffnen]

Lösungsvorschlag (kommt im Jahr 2037)