Start > Informatik > C - Kurs > Funktionen II

Funktionen II


oder auch Funktionen mit Parametern

Sinn und Zweck

So bis jetzt sind die Funktionen recht langweilig, man kann damit nur ein Programm in verschiedene Teile unterteilen.
Wir haben im vorherigen Kapitel gelernt, dass man Funktion wie kleine Teilprogramme behandeln kann und dass man jedes "Teilprogramm" auch beliebig häufig aufrufen kann.
Wenn die Funktionen aber alle nur für sich alleine agieren, dann machen sie wenig Sinn. Manchmal möchte man eine Funktion so verwenden, wie sie ist, nur mit anderen Zahlen.

Beispiel

    void fnAddTwoNumbers(){
       int iZahl1;
       int iZahl2;
       int iErgebnis;

       int iZahl1= 17;
       int iZahl2 = 23;

       iErgebnis = iZahl1 + iZahl2;
    }

Diese Funktion immer wieder aufzurufen ist ziemlich unsinnig, warum sollte jemand immer 17 + 23 rechnen wollen.
Die Frage die sich jetzt stellt:

Wie bekomme ich Werte von außen in meine Funktion?

Dazu gibt es zwei Möglichkeiten:
  1. Benutzereingabe
  2. Parameter
Fall 1 lassen wir mal weg, man will ja nicht andauernd etwas eingeben, der Computer soll auch ruhig mal alleine arbeiten, also bleibt nur Fall 2:

Parameter? Was ist das denn?

Ein Parameter kennt man aus dem Mathematik-Unterricht, dort taucht er bei Funktionen auf. (huch, fällt Euch was auf? Selbe Begriffe, selbe Bedeutung)
Wiederholung / Erinnerung an Mathematik:

    f(x) = 3 + x        hier ist x der Parameter.

für x kann man etwas beliebiges einsetzen und dann wird auf der rechten Seite für x dieser Wert eingesetzt:

    f(4) = 3 + 4

Wenn man das mit Programmieren vergleicht, dann ist "f" der Funktionsname. "3 + x" das was die Funktion macht. und "x" der Parameter.
Also lautet das ganze in C ziemlich genau so:

    void fnFunktion ( int iX ) {
       int iErgebnis;

       iErgebnis = 3 + iX;
    }

Diese Funktion macht nichts anderes als 3 + x zu rechnen. Man kann erkennen das die Variable x nicht deklariert werden muss, weil sie als Parameter angegeben ist.
Das Ergebnis ist dann abhängig davon, was man für x angegeben hat. Wie gibt man sowas denn an?

Funktionsaufruf mit Parametern

Dazu steht dort wo die Funktion aufgerufen wird, sowas:

    int main(){
       fnFunktion(4);
    }

In den runden Klammern steht dann also das, was für den Parameter x eingesetzt werden soll.

Zusammenfassung und Syntax-Beschreibung in C

Es gibt also die Möglichkeit einer Funktion einen Wert von außen mitzugeben, mit Hilfe eines Parameters.

Syntax einer Funktion mit Parameter

Grundsätzlich sieht eine Funktion mit Parametern immer so aus:
Aufruf einer Funktion mit Parametern:

    Datentyp fnFunktion ( Datentyp ParameterName ) {
        //hier steht dann der Code
    }

Wichtig ist, dass bei der Deklaration von Parametern für jeden Parameter einzeln ein Datentyp angegeben wird.

Mehrere Parameter bei einer Funktion möglich?

Ja, das geht. Ein einfaches Beispiel sieht dann so aus:

    void fnFunktion ( int iX , int iY ) {
       int iErgebnis;

       iErgebnis = iX + iY;
    }

    int main(){
       fnFunktion( 3 , 4);
    }

Beachte: Beim function call müssen die Parameter in der richtigen Reihenfolge stehen. die 3 wird in iX, 4 in iY abgelegt.

Vorteile der Verwendung von Parametern

Es ergeben sich eine Menge Vorteile, die beiden wichtigsten sind:
  1. Wiederverwendung von immer gleichen Anweisungen, wenn sich nur die Werte! ändern
  2. Entscheidungen innerhalb einer Funktion abhängig von Parametern

Wo gelten jetzt eigentlich die Variablen und Parameter?

Dies ist eine wichtige Frage bei Funktionen. Wo Variablen gelten und welche Auswirkungen das hat, das wird im Kapitel Scope erklärt.

Infoblätter und Arbeitsblätter

Funktionen mit Parametern
Info: Funktionen kann man nicht nur einfach so aufrufen, sondern man kann ihnen auch etwas  mitgeben.  Diese sogenannten Parameter sind sozusagen Informationen, die man der Funktion mitgibt, wenn man sie aufruft. Dieses Info-/Arbeitsblatt erklärt das Prinzip eines Funktionsaufrufes mit Parametern und liefert ein paar Übungsaufgaben dazu.
HINWEIS: man muß verstanden haben, was der Scope (Gültigkeitsbereich) von Variablen ist, ggf. unter Scope nachlesen.
Ticker
Last update:
October 08. 2018 08:46:35