Lektion 7:FunktionenEine weitere Möglichkeit, den Code übersichtlich zu halten, sind Funktionen. Es ist oft sinnvoll, die Berechnung von Werten in Funktionen auszulagern. Die Funktion bekommt einen Namen, an dem man möglichst klar erkennt, was sie tut. Es ist völlig egal, wie sie zum Ergebnis kommt, wichtig ist nur, daß man genau weiß, was sie tut, wie im folgenden Beispiel:
Hier wurde eine Funktion definiert. Die Definition besteht aus dem Funktionskopf
und dem Funktionsrumpf
Die Funktion berechneKegelVolumen ist vom Typ float, das heißt, wenn sie ausgewertet wird, dann gibt sie einen Wert vom Typ float zurück. Und sie nimmt zwei Parameter vom Typ float. Der Wert, der beim Aufruf an erster Stelle steht (radius), wird im Funktionskopf in die erste Variable gesteckt (r), der zweite in die zweite, usw. Würden also beim Aufruf die beiden Werte vertauscht, dann kämen falsche Ergebnisse heraus, weil in r die Höhe und in h der Radius stehen würden. Wenn innerhalb einer Funktion der return-Befehl ausgeführt wird, dann wird der Ausdruck nach return (hier die Variable v) ausgewertet und als Rückgabewert der Funktion zurückgegeben. Dabei wird die Funktion verlassen, und die Ausführung geht beim aufrufenden Programm weiter. Ein return-Befehl muß nicht am Ende einer Funktion stehen. Auch die main-Funktion kann vorzeitig mit dem return-Befehl beendet werden. Dabei wird dann das ganze Programm beendet. Die Variablennamen bestehen hier nur aus einem einzelnen Buchstaben. Das ist nur dann unproblematisch, wenn völlig klar ist, welche Bedeutung die Variablen haben. Hier in diesem Fall sollte es unproblematisch sein. Über die Funktion müssen wir nur inhaltlich wissen, was sie macht, nämlich aus Radius und Höhe eines Kegels dessen Volumen berechnen. Das läßt sich an ihrem Namen und den Namen der beiden Parameter sehr leicht erkennen. Und schon können wir diese Funktion in anderen Teilen des Programms verwenden. Natürlich muß sichergestellt sein, daß die Funktion auch richtig rechnet, aber zum Glück ist die Funktion sehr klein, und daher leicht zu überschauen. Das enthebt aber nicht von der Pflicht, eine Funktion erst dann als richtig anzuerkennen, wenn sie auch ein wenig getestet wurde. Oft liegt der Fehler nämlich im Detail. So rechnet z.B. diese Funktion
völlig falsch. Auch erfahrenen Programmierern passiert es, daß sie so einen Fehler tagelang suchen. Aber wo liegt denn hier der Fehler? (Auflösung in der nächsten Lektion) Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern. [aktuelle Version] [inhalt] [index] [Fehlerkorrektur, Verbesserungsvorschlag] © Volkard Henkel <volkard@normannia.de>, last update: 08/25/00 |