Computer-Masters.de > Artikel > Programmieren > C++ > C++ Einsteigerkurs > C++ Einsteigerkurs: Kapitel 5: Funktionen und Header

C++ Einsteigerkurs: Kapitel 5: Funktionen und Header

Im letzen Kapitel war der Quellcode nun schon etwas länger.
Beim Lösungsvorschlag der Aufgabe aus Kapitel 4 ist sogar eine Redundanz im Code vorgekommen.
Redundanz bedeutet, dass Teile im Code, die genau das gleiche bewirken mehrmals vorkommen, obwohl man sie zu einem zusammenfassen könnte.
Wenn also wie in der if-Schleife im Lösungsvorschlag der Aufgabe aus Kaptiel 4 bei mehreren Bedingungen die gleiche Ausgabe erscheinen soll, kopieren Sie bestimmt der Einfachheit halber per Copy & Paste die Zeile in die andere Bedingung hinein.
Sollten Sie jetzt feststellen, dass sie einen Schreibfehler gemacht haben, müssten Sie wiederum alle einzelnen Ausgaben korrigieren. Das ist zeitaufwändig, fehleranfällig und braucht unnötig Speicherplatz.
Eine Lösung des Problems sind Funktionen, wie das folgende Beispiel zeigt:

 
Cpp-Script

//Als erstes werden die Header includiert;
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <cstdlib>

using namespace std;

//die Funktion 'rechner' wird definiert (void braucht keinen Rckgabewert)
void rechner(double a, double b)  
{
    //Rechnungen werden durchgefhrt
    cout <<"\n"<<a<<"+"<<b<<"="<<a+b<<endl;  
    cout <<a<<"-"<<b<<"="<<a-b<<endl;
    cout <<a<<"/"<<b<<"="<<a/b<<endl;
    cout <<a<<"*"<<b<<"="<<a*b<<"\n\n";
}

// Die Main-Funktion wir als int definiert.
int main()
{   
    double zahl1; 
    double zahl2;

    //Informationstext zum Programm.
    cout <<"Einfacher Rechner.\n\n"
        "Bitte Geben Sie die erste Zahl ein:\nzahl1:";
    cin>>zahl1;
    cout <<"Bitte Geben Sie die zweite Zahl ein:\nzahl2:";
    cin>>zahl2;

    rechner(zahl1, zahl2); //die Funtkion rechner wird aufgerufen und die Variablen eingesetzt.

    cout <<"Geben Sie neue Zahlenwerte ein:\nzahl1:";
    cin>>zahl1;
    cout <<"zahl2:";
    cin>>zahl2;

    rechner(zahl1, zahl2); //die Funtkion rechner wird aufgerufen und die neuen Variablen eingesetzt.

    cout <<"Sie sehen, dass der Code zum Rechnen nur einmal, nicht zweimal, geschrieben werden musste.\n\n";

    //Das Programm wird bis Tastendruck angehalten.
    system("Pause");
    
    //Die Main-Funktion vom Typ Int muss einen Wert zurckgeben (in diesem Fall 0)
    return 0;
}
1

void rechner(double a, double b)

In dieser Zeile wird die Funktion "rechner" als void definiert, braucht also keinen Rückgaberwert, wie z.B. Integer.
Die Variablen in den Runden Klammern sind die formalen Parameter, die nur in der Funktion "rechner" gültig sind und dem Computer auch nur dort bekannt sind.
Eine Funktion wird folglich immer so definiert:

 
Cpp-Script

Funktionstyp Funktionsname(Parametertyp Parametername)
{
       //Code der  Funktion
}
1

Dabei muss nicht immer ein formaler Parameter angegeben werden. Mehrere Formale Parameter werden durch Kommata getrennt.

rechner(zahl1, zahl2);

Hier wird in der main-Funktion die Funktion "rechner" aufgerufen. Da die Funktion "rechner" zwei formale Parameter vom Typ double benötigt, werden diese auch gleich eingesetzt.
Wichtig ist, dass die Variablen die eingesetzt werden, den richtigen Datentyp aufweisen und, dass alle formalen Parameter eingesetzt werden.
Folgende Funktionsaufrufe wären demnach möglich:


Cpp-Script

rechner(zahl1, zahl2);
rechner(10.6, zahl2);
rechner(0, 103.2);
rechner(zahl1, 130);
1

Folgende Funktionsaufrufe wären demnach nicht möglich:


Cpp-Script

rechner("wort", zahl2);
rechner();
rechner(0, 103.2, 23, 423);
1

Header

In komplexeren Programmen gibt es natürlich viel mehr Funktionen, als in diesem Beispielprogramm.
Eine weitere Möglichkeit den Code übersichtlich zu gestalten sind Header. Das ist nichts weiter, als die Funktionen in andere Dateien als "main.cpp" zu schreiben, sodass man den Code nicht immer runterscrollen muss, sondern mit den Reitern im Compiler bequem zwischen den einzelnen Code-Dateien hin und her wechseln kann.
Den Code aus dem Beispiel oben könnte man so zerlegen:
Dateiname: rechner.h


Cpp-Script

using namespace std;

void rechner(double a, double b)  
{
    cout <<"\n"<<a<<"+"<<b<<"="<<a+b<<endl;  
    cout <<a<<"-"<<b<<"="<<a-b<<endl;
    cout <<a<<"/"<<b<<"="<<a/b<<endl;
    cout <<a<<"*"<<b<<"="<<a*b<<"\n\n";
}
1

Dateiname: main.cpp


Cpp-Script

#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <cstdlib>

#include "rechner.h"

int main()
{   
    double zahl1; 
    double zahl2;

    cout <<"Einfacher Rechner.\n\n"
        "Bitte Geben Sie die erste Zahl ein:\nzahl1:";
        cin>>zahl1;
    cout <<"Bitte Geben Sie die zweite Zahl ein:\nzahl2:";
    cin>>zahl2;

    rechner(zahl1, zahl2); 

    cout <<"Geben Sie neue Zahlenwerte ein:\nzahl1:";
        cin>>zahl1;
    cout <<"zahl2:";
    cin>>zahl2;

    rechner(zahl1, zahl2); 
    cout <<"Sie sehen, dass der Code zum Rechnen nur einmal, nicht zweimal, geschrieben werden musste.\n\n";

       system("Pause");
    
    return 0;
}
1

#include "rechner.h"

#include "rechner.h" ist die neue Zeile in main.cpp. Diese sorgt dafür, dass an der Stelle, wo sie selbst steht der gesamte Inhalt von "rechner.h" an dieser Stelle eingefügt wird.
Jetzt können Sie auch verstehen, was die anderen includes darüber bewirken. Sie fügen schon fertige Funktionen von C++ in Ihren Code ein, sodass Sie einfach drauf los Programmieren können.
Eigene Header includieren Sie im allgemeinen so:


Cpp-Script

#include "Dateipfad_in_relation_zu_main.cpp/dateiname.h"
//oder
#include "C:/absoluter_Pfad/dateiname.h"
1

Zu beachten ist dabei, dass alle Variablen, Funktionen etc., die im Header benutzt werden vor der Zeile, in der der jeweilige Header includiert wird definiert wurden. Die Definitionen können auch in einem anderen Header sein, dieser muss dann vor den Headern und Funktionen eingefügt werden, die auf die jeweiligen Definitionen zugreifen.

Wenn Sie das Prinzip hinter Funktionen und Headern verstanden haben, haben Sie schon ein sehr gutes Werkzeug, Ihren Code zu vereinfachen und übersichtlicher zu gestalten.

 

 

Download der Codedateien aus Kapitel 5

application/zip Kapitel 5 Quellcode (1,9 KiB)

 

Sie haben noch Fragen?

Nutzen Sie einfach die Kommentarfunktion, die Ihnen auch als unregistrierter Leser zur Verfügung steht!

Gerne wird Ihnen bei Fragen zum Artikel weiter geholfen! Wenn Sie vom Artikel abweichende Fragen haben, können Sie gerne das Forum verwenden!

 

Kommentare

Computer-Masters.de > Artikel > Programmieren > C++ > C++ Einsteigerkurs > C++ Einsteigerkurs: Kapitel 5: Funktionen und Header

Anzeige: