Die Webseiten der Fachschaft Informatik am ERG SaalfeldParameter (von Prozeduren und Funktionen)Durch das Verwenden von Subroutinen wird es viel einfacher möglich, dass Programm in Teamarbeit erstellt
werden und sich jeder Programmierer um "seine" (Unter-)Programme kümmert. Dabei tritt allerdings das Problem auf, dass man für
die Übergabe der Variablen bei der Verwendung von globalen Variablen sehr eingeschränkt ist und es zusätzlicher
Absprachen wegen der Benennung dieser Variablen bedarf. Zudem kann die Subroutine nicht unabhängig vom Programm erstellt
oder gar weitergegeben werden. formale und aktuelle Parameter (am Beispiel arithmetisches Mittel)Wir schreiben eine Funktion z = mittel(x,y) , die für 2 Zahlen (hier x und y) das arithmetische Mittel (hier z) zurück gibt. Natürlich sollen auch Aufrufe wie z.B. a = mittel(b,c) oder zahl = mittel(8,10) möglich sein. Die Subroutine, die wir jetzt schreiben, muss also 2 Zahlen übernehmen, egal welchen Wert diese haben und erst recht muss es egal sein, wie diese heißen (falls es Variablen sind). Wir legen als Programmierer selbst fest, wie die Variablen benannt werden. Subroutine für "mittel"
ProgrammDie Funktion kann nun so wie in dem Beispielprogramm aufgerufen werden.
Erläuterung: Wenn im Hauptprogramm die Funktion so aufgerufen wird: m = mittel(x,y) ,
dann sind x und y (bzw. die Werte 8 und 15) die aktuellen Parameter des Funktionsaufrufs. D.h. an der 1. Stelle der Parameterliste
steht die 8 und an der zweiten Stelle steht die 15. Wenn jetzt der Programmcode für die Subroutine abgearbeitet wird, dann
ist die Variable für die erste Stelle der Parameterliste die Variable a und für die zweite Stelle die Variable b. Die Ausgabe des Programms sieht so aus:
Verbesserung des ProgrammsDadurch, dass die Parameter sowieso als Liste übergeben werden, kann man die Funktion so schreiben, dass für eine beliebige Anzahl von Zahlen das arithmetische Mittel bestimmt wird. Eine beliebige Anzahl von Argumenten schreibt man so, dass man vor den Variablennamen ein * schreibt. Das Programm sieht dann z.B. so aus:
|