| ### 1. Abend
### "Hello World"
    #include <iostream>

    using namespace std;

    int main()
    {
        cout << "Hallo Welt" << endl;
        // unser erstes Programm
        return 0;
    }
| Betrachten wir diesen Programmcode Schritt für Schritt ! Die erste Zeile enthält eine sogenannte Preprocessor - Anweisung. Was der Preprocessor genau macht werden wir während des Unterrichts noch besser kennenlernen. Eine Preprocessor-Anweisung beginnt mit dem Hash-Zeichen : #. Die include-Preprocessor Anweisung bewirkt, dass die Datei "iostream" vor dem Kompilationsvorgang an die Stelle der #include-Anweisung eingefügt wird. Damit werden alle Funktionen aus der iostream-Bibliothek in unserem Programm verfügbar. Die iostream-Bibliothek, die Teil der C++ Standardbilbiothek ist, enthält Funktionen um Ein-und Ausgaben zu machen. Die zweite Zeile bewirkt, dass der Compiler wirklich die Funktionen aus dem C++ Standard verwendet. Bevor der Standard sich durchgesetzt hat, gab es schon gewisse Funktionen (wie für die Ein- und Ausgabe). Viele davon wurden auch im neuen Standard definiert. Da es die alten Funktionen mit dem gleichen Namen auch noch gibt, wurden sogenannte Namensräume (namespace) eingeführt. Mit der Zeile: using namespace std; verwendet der Compiler die Definitionen aus dem neuen C++ Standard.
| Jetzt folgt die Definition der main - Funktion:
Datentyp, für den Wert, der die Funktion zurückgibt | Name der Funktion | Liste der Parameter, die der Funktion übergeben werden (hier leer)
    int
    main
    ()
Also unsere Funktion hier heisst main und der Aufrufer erhält als Rückgabewert einen Wert vom Datentyp int. Der Datentyp int steht für einen Ganzzahl - Wert. Die main - Funktion wird vom Betriebssystem aufgerufen, wenn wir das Programm laufen lassen ! Der Code, der zur main - Funktion gehört befindet sich innerhalb der geschweiften Klammern { } ! Diese geschweiften Klammern definieren einen sogenannten Scope, einen Bereich. Die nächste Zeile, ist die interessanteste unseres kleinen Programmes. "cout" steht für Console Out. Die Konsole (Console) ist das schwarze Fenster auf dem PC, das erscheint, wenn wir dieses Programm laufen lassen. (Fälschlicherweise wird dieses Fenster für ein DOS-Fenster gehalten.) Wir schicken den Text "Hallo Welt" mit den "<<"-Zeichen an die Konsole. Danach schicken wir noch ein endl hintendrein. endl bewirkt eine Zeilenschaltung, das heisst der Cursor springt eine Zeile weiter ! cout und endl sind Dinge, die in der iostream - Bibliothek definiert sind. Diese Zeile stellt ein abgeschlossenes C++-Statement dar. Jedes C++-Statement wird mit einem Semikolon abgeschlossen. Vergesst die Semikolons nicht ! Danach folgt eine Zeile Kommentar, die mit zwei "Slashes" (/) beginnt. Sobald zwei solche Slashes kommen, ist der Rest der Zeile ein Kommentar und wird vom Compiler nicht mehr beachtet:
    // Das ist eine Kommentarzeile
    // Das ist eine zweite Kommentarzeile
Unser Editor färbt Kommentar im Normalfall grün ein. Mehrzeiliger Kommentar sieht folgendermassen aus :
    /*
    Das ist ein Kommentar,
    der übere mehrere Zeilen läuft
    */
Danach folgt die Zeile, die unsere Funktion beendet und dem Aufrufenden mittels der return - Anweisung den Rückgabewert 0 zurückgibt.
kleine Übung :
| Ändere das Programm so ab, dass es eine weitere Zeile Text ausgibt, zum Beispiel "Ich bin Seppi".
### Ein weiteres Beispiel
| In unserem zweiten Beispiel bauen wir bereits ein Funktion ein. Eine Funktion ist ein Unterprogramm, das uns hilft unser Programm in kleine Aufgaben aufzuteilen. Eine Funktion kann dabei einen Rückgabewert aufweisen, so wie die main-Funktion. Nehmen wir als Beispiel eine Funktion, die zwei Zahlen addiert, wofür wir eigentlich nicht eine Funktion brauchen würden. Aber als Beispiel taugt das sicher ! Hier die Funktion :
    int add(int a, int b)
    {
        return (a + b);
    }
| Das erste int gibt also den Datentypen des Rückgabewertes an. Wir werden später noch genauer lernen was Datentypen sind und welche es gibt. Wir sehen hier auch wie eine Funktion aussieht, wenn sie Parameter braucht. Diese hier braucht zwei Parameter, nämlich zwei Zahlen vom Datentyp int, also Ganzzahlen. Die Zahlen, die der Funktion übergeben werden erhalten Stellvertretend die Namen "a" und "b". So sieht dann unser komplettes Programm aus:
    #include <iostream>

    using namespace std;

    int add(int a, int b)
    {
        return (a + b);
    }

    int main()
    {
        cout << "Hallo Welt" << endl;

        // jetzt folgt der Funktionsaufruf
        // das Ergebnis (der return-Wert) wird
        // direkt an cout geschickt
        cout << add(5,6) << endl;

        return 0;
    }

    Ausgabe :
| Wir rufen die Funktion "add" also auf und übergeben der Funktion die zwei Werte 5 und 6. Wenn wir das Programm schrittweise abarbeiten (mit dem Debugger) landen wir in der Funktion und können sehen, dass a den Wert 5 und b den Wert 6 hat. Die Funktion gibt den die Summe zurück. Im main wird dieses Ergebnis direkt an cout "geschickt" : cout << add(5,6)... also auf dem Bildschirm ausgegeben.
| Es gibt auch Funktionen, die nichts ausrechnen und somit auch keinen Rückgabewert haben. Solche Funktionen sehen so aus :
    void line()
    {
        cout << "-----------------------------" << endl;
    }
| Der Rückgabewert heisst hier void. Void heisst so viel Leer, Nichtig oder Lücke. Da der Compiler verlangt, dass vor dem Funktionsnamen (hier line) ein Datentyp steht, müssen wir also void hinschreiben.
    #include <iostream>

    using namespace std;

    void line()
    {
        cout << "-------------------" << endl;
    }

    int main()
    {
        cout << "Hallo Welt" << endl;
        // jetzt folgt der Aufruf der line-Funktion
        line();

        return 0;
    }

    Ausgabe :
### Übung |
| Mach dich mit der Entwicklungsumgebung vertraut, so dass du ein Projekt erzeugen kannst und im Editor das Programm eingeben kannst. Ein Anleitung findest du hier. Schreibe zuerst ein einfaches "Hallo Welt"-Programm. Versuche danach auch die eine oder andere Funktion zu schreiben. Mit oder ohne Rückgabewert, mit oder ohne Parameter.