Nun fehlt nur noch eine Programmstruktur, dann haben wir die wichtigsten und grundlegendsten Dinge für das vernünftige Programmieren zusammen. Glücklicherweise sollte das letzte Konzept allen bereits aus der Mathematik bekannt sein: die Funktionen. In der Mathematik hat es sich als günstig erwiesen, häufig benutzten oder sehr komplizierten Formeln (Ausdrücken) einen Namen zu geben, unter welchem sie schnell und für alle verständlich benutzt werden können. Die bekanntesten Vertreter hierfür sind zweifelsohne die trigonometrischen Funktionen zur Berechnung des Sinus, Cosinus und Tangens. So etwas wie sin(π)
hat sicher jeder schon einmal gesehen; hinter dem sin
verbirgt sich aber nichts anderes als die reichlich komplexe Sinus-Funktion (für Details bitte hier klicken) – man hat ihr also einen Namen gegeben, um sie einfacher ansprechen zu können. Wichtig ist auch die Beobachtung, dass der Sinus-Funktion ein Wert mitgegeben werden muss, auf welchem sie operiert (zum Beispiel das Pi); natürlich können hier nicht nur konkrete Zahlen eingegeben werden, sondern beliebige Ausdrücke und Variablen; so wird etwa der Tangens gerne folgendermaßen definiert:
tan(x) = sin(x) / cos(x)
In der Informatik wird dieses Konzept der Funktionen aufgegriffen und erweitert. Anstatt nämlich lediglich als kürzerer Name für einen komplizierten Ausdruck zu dienen, können Funktionen in der Informatik ganze Anweisungsfolgen vereinen. Dies wird insbesondere dann benutzt, wenn ein komplexerer Code an verschiedenen Stellen im Programm benutzt werden soll; anstatt ihn immer wieder zu schreiben, wird er einmal als Funktion definiert und kann dann an beliebiger Stelle verwendet werden. Praktisch könnte das etwa so aussehen (die Erklärung folgt wie immer unter dem Code):
(2) if x > 0:
(3) return x
(4) else:
(5) return -x
In diesem Beispielcode wird eine Funktion abs
definiert (man spricht von einer Funktionsdefinition oder Funktionsdeklaration), welche den Absolutwert eines gegebenen Wertes x
(also den immer positiven Wert) berechnen soll; den Wert x
nennt man Parameter der Funktion abs
; eine Funktion kann beliebig viele Parameter (auch keinen) erfordern. Da eine Funktion in der Informatik anders als in der Mathematik nicht zwangsläufig nur einen Ausdruck, sondern eine ganze Anweisungsfolge markiert, muss explizit erwähnt werden, zu welchem Wert die Benutzung der Funktion führen soll. Das erfolgt folgerichtig über die return
-Anweisungen in den Zeilen (3) und (5): sie geben einfach an, dass entweder der übergebene Wert selber oder – falls er negativ ist – die Negation davon zurückgegeben, also als Ergebnis der Auswertung der Funktion verwendet werden soll. Benutzt kann sie nun ganz so werden, wie wir es aus der Mathematik kennen, also etwa folgendermaßen:
(2) c ← abs(b)
(3) d ← abs(42)
(4) e ← abs(-1337)
Man spricht hier von einem Funktionsaufruf – die Funktion abs
wurde in diesem Code 4 mal aufgerufen. Die an die Absolutwert-Funktion übergebenen Werte a
, b
, 42
und -1337
nennt man Argumente des Funktionsaufrufes. Und weil es so wichtig ist, wiederhole ich es noch einmal: die beim Aufruf einer Funktion übergebenen Werte heißen Funktionsargumente, die bei der Deklaration der Funktion verwendeten Variablen heißen Parameter – das wird gerne durcheinandergebracht, daher der explizite Hinweis. Mitlesende Nichtinformatiker bitte ich an dieser Stelle, den Artikel noch einmal genau zu lesen und alle Begrifflichkeiten und Bedeutungen zu verinnerlichen – sie werden für die Zukunft wichtig sein (außerdem bitte ich, den Bildermangel zu entschuldigen – Programmiergrundlagen sind einfach kein Thema, dass sich gut bebildern ließe).
So, da nun die grundlegenden Begriffe der modernen Programmierarbeit geklärt sind, können wir uns in zukünftigen Artikeln ins Getümmel stürzen und uns den Feinheiten der Informatikwelt widmen. Ich kann schon versprechen, dass es spannend werden wird!
Kommentare (46)