Funktionen sind ein wichtiges Programmierkonzept, da man mithilfe von Funktionen das Programm übersichtlicher und modularer gestalten kann.
Funktionen
Unser Alltag besteht immer wieder aus Tätigkeiten, die aus einzelnen kleineren Tätigkeiten zusammengesetzt sind. Zum Beispiel besteht die Tätigikeit "Händewaschen" aus mehreren kleineren Tätigkeiten. Kleinkinder müssen diesen Ablauf lernen, als wäre es ein Programm.
Pseudocode Händewaschen:
- Wasserhahn aufdrehen
- Hände benetzen
- Seife benutzen
- Seife einreiben
- Seife abwaschen
- Wasserhahn zudrehen
- Hände trocknen
Wenn sie diesen Ablauf einmal gelernt haben, kann man diese Tätigkeit, mit " Händewaschen", aufrufen. Die einzelnen Zwischenschritte müssen nicht mehr erklären. Falls man nun das "Programm Mittagessen" programmieren möchte, kann nun die Funktion: "Händewaschen" aufgerufen werden:
Pseudocode Mittagessen:
- Händewaschen
- Essen
- Händewaschen
Eine Funktion speichert also Arbeitsschritte/Codezeilen in ein Modul, das bei Bedarf aufgerufen werden kann. Dies sparrt beim Programmieren Zeilen (Speicherplatz) und macht ein Programm übersichtlicher.
Parameter
Eine Funktion, die ein Programmblock zusammenfasst, ist zwar praktisch jedoch statisch. Mithilfe von Parameter können einzelne Ausführungen im Funktionscode angepasst werden. Im Beispiel mit dem Händewaschen könnte man beispielsweise einen Parameter "Dauer" benutzen. So kann die Dauer des Händewaschens bei jedem Aufruf der Funktion neu gesetzt werden.
Pseudocode Händewaschen(Dauer):
- Wasserhahn aufdrehen
- Hände benetzen (Dauer)
- Seife benutzen
- Seife einreiben
- Seife abwaschen (Dauer)
- Wasserhahn zudrehen
- Hände trocknen
Die Funktion könnte jetzt beispielsweise wie folgt aufgerufen werden:
Händewaschen(15):
Jetzt würde die Funktion ausgeführt werden und die Hände würden 15 Sekunden benetzt und die Seife 15 Sekunden abgewaschen werden.
Erklärung zum Programm:
Ausgangslage: Es soll ein Begrüssungsbot für Webseiten erstellt werden, der den User grüsst und den Inhalt der Website kurz erklärt. Im jetzigen Zustand muss für jeden User und jedes Thema der gesamten Text neu geschrieben werden.
Damit man nicht für jeden User die Begrüssung neu schreiben muss, wäre ein Funktion gut, die den User begrüsst. Somit könnte man bei jedem neuen User nur die Funktion aufrufen und der User würde mit Namen begrüsst werden. Im folgenden Abschnitt wird dieser Vorgang erklärt.
Erklärung zum Programm:
Scratch: Es wird eine Funktion definiert die Begrüssung heisst. Wenn diese Funktion aufgerufen wird, grüsst die Funktion den User und zeigt den Inhalt der Website auf. Damit der User persönlich gegrüsst wird, wird der Funktion "Begrüssung" noch der Parameter "User" mitgegeben. Aufgrund der Übericht wurde der text für die Begrüssung in Scratch gekürzt.
Beim Aufrufen der Funktion kann nun der Parameter User mit einem Namen definiert werden. Nun grüsst das Programm den User persönlich. Für jeden neuen User reicht es die Funktion neu aufzurufen und einen Namen einzusetzten.
Python: Der Aufbau verläuft analog zu Scratch. Auch hier wird der Inhalt der Funktion eingerückt.
*Erklärung zum Programm:
Scratch und Python:
Es können am Anfang einer Funktion auch mehrere Parameter definiert werden. Im Beispiel wird nun auch das Thema der Webseite als Parameter der Funktion übergeben. Bei der Ausführung der Funktion begrüsst der Chatbot den User auf der Website zum Thema xy.
Eine Funktion auch zur Berechnung genutzt werden und einen Wert am Ende der Funktion zurückgeben.
Man kann auch Zahlenwerte als Parameter eingeben. Beispielsweise könnte man die Funktion Quadrat definieren und als Parameter die Seitenlänge (s_length) eingeben lassen. Mit dieser Funktion könnte man ein Quadrat mit der Seitenlänge (s_length) zeichnen und/oder die Fläche berechnen: