Komponenten einer Funktion
Was bezweckt die Aufforderung "Hol mal fünf Bier?"
Mi diesem Satz beauftragt man jemanden mit der Beschaffung von 5 Bier.
Was da umgangsprachlich so einfach ist, besteht aus sehr vielen Komponenten, die man beim prozeduralen Prpgrammieren berücksichten muss.
Hol mal .... ist ein Aufruf, der an jemanden gerichtet wird.
In der Programmierung wird dieser 'jemand' in Form einer Funktionsdefinition bereitgestellt.
Dazu verwendet man einen eindeutigen Funktionsnamen z.B. bier_holen.
.. 5 Bier ist eine Angabe, die die gewünschte Menge in einem konkreten Fall angibt.
Damit eine Funktion auf variable Wünsche reagieren kann, wird in der Funktionsdefinition keine absolute Zahl, sondern eine Variable vereinbart. In diesem Fall sind ganzzahlige Werte sinnvoll.
Die aufnehmende Variable wird hinter dem Funktionsnamen in Klammern, mit Datentyp und einem Namen angeben. bier_holen ( int wieviel )
Aufgrund technischer Vorraussetzungen ( Speicherverwaltung ) ist zusätzlich notwendig bei einer Funktionsdefinition anzugeben, was man von der Funktion als Ergebnis ( Rückgabe) erwartet.
Der Datentyp der Rückgabe wird noch vor dem Funktionsnamen angegeben.
double bier_holen ( int wieviel ) // gibt eine Fließkommazahl zurück, z.B. Preis der Bestellung
string bier_holen ( int wieviel ) // gibt eine Zeichenkette zurück, z.B. Name der Biersorte
Erwartet manvon der Funktion keine Rückgabewerte ist der vorangestellte Datentyp
void bier_holen ( int wieviel )
Diese Zeile aus returntype name ( parameterlist) wird als Funktionskopf bezeichnet
Die eigentliche Leistung, die Verabeitungsschritte der Funktion werden im sogenannten Funktionsrumpf beschrieben. Der Funktionsrumpf folgt auf den Funktionskopf in geschweiften Klammern.
double bier_holen ( int wieviel )
{
float flaschenpreis = 1.45;
........ // Tätigkeiten in der Funktion
return wieviel * flaschenpreis; // Preis der gewünschte Lieferung
}