Erstes Programm

Nachdem du nun alle Vorarbeiten abgeschlossen hast, kann es nun endlich losgehen. Dazu erstellst du ein sogenanntes Hello-World-Programm. Dieses kommt in vielen Lehrbüchern als einfachstes Programmierbeispiel zum Einsatz. Es erfüllt lediglich eine Aufgabe: Es gibt die Begrüßung „Hello World!“ aus. In unserem Beispiel passen wir die Ausgabe an den Kurs an und begrüßen die Teilnehmer mit „Hallo Edley!“.

Unser erstes Programm soll so einfach wie möglich gehalten sein. Deshalb gibt es nur einen kurzen Text aus: „Hallo Edley!“. Bevor du den Code verfassen kannst, musst du die folgenden Schritte durchführen:

  1. Wähle beim ersten Öffnen der IDE C++ als Programmiersprache aus.
  2. Wähle im folgenden Fenster Neues Projekt erstellen aus.
  3. Erstelle ein Leeres Projekt.
  4. Gib ihm im nächsten Fenster den Namen ErstesProgramm.
  5. Klicke in der linken Spalte (Projektmappen-Explorer) mit der rechten Maustaste auf Quelldateien und anschließend auf Hinzufügen > Neues Element oder verwende alternativ den Shortcut  Strg + Umschalttaste + A (Windows) oder cmd + Umschalttaste + A (macOS).
  6. Wähle C++-Datei aus.
Der Programmcode

Füge den folgenden Code in die Datei ein:

#include <iostream>

int main()
{
    std::cout << "Hello Edley!";
}
  1. Die erste Zeile enthält den include-Befehl. Damit bindest du die Bibliothek ein, die die notwendigen Befehle für dieses Programm enthält.
  2. Mit int main() leitest du das Hauptprogramm ein. Dieses steht in geschweiften Klammern ({}).
  3. Der Ausdruck std::cout << "Hello Edley!"; ist der eigentliche Ausgabebefehl. Dieser führt dazu, dass unser Programm den gewünschten Text ausgibt.
Das Programm ausführen

Bevor du das Programm ausführen kannst, musst du es abspeichern. Klicke dafür in der Menüleiste auf Datei > Quelle.cpp speichern oder verwende die Shortcuts Strg + S (für Windows) oder cmd + S (für macOS).

Um das Programm auszuführen, gibt es mehrere Möglichkeiten:

  1. Klicke in der Werkzeugleiste auf grüne Dreieck mit der Beschriftung Lokaler Windows-Debugger.
  2. Wähle in der Menüleiste Debuggen > Debuggen starten aus.
  3. Betätige die F5-Taste.

Wenn du eine der genannten Aktionen durchführst, kompiliert die IDE das Programm und führt es anschließend aus. Du erkennst, dass im entsprechenden Dateiordner eine ausführbare Datei entstanden ist. Außerdem öffnet sich ein Fenster, das den Programmtext ausgibt.

Dazu öffnest du die IDE, die du soeben installiert hast. Beim ersten Mal erscheint hierbei unter dem Begriff Einstellungen eine Abfrage, bei der du vorgeben kannst, mit welcher Programmiersprache du arbeiten möchtest. Hierbei wählst du Visual C++ aus. Außerdem kannst du angeben, welches Design du verwenden willst. Auf die Funktionen hat das Design keinerlei Einfluss, sodass du hierbei in deiner Wahl vollkommen frei bist. Im Video wurde beispielsweise ein dunkles Design gewählt, während die Screenshots unten ein helles Design verwenden.

In diesem Video kommt für das Programm noch das sogenannte return-Statement zum Einsatz, auf das wir in den Beispielen im Workbook verzichtet haben. Das entspricht zwar einem guten Programmierstil, ist jedoch nicht zwingend notwendig. Daher verwenden wir es erst, nachdem wir seine Bedeutung genau erklärt haben. Wenn du wissen willst, was es hiermit auf sich hat, kannst du aber auch schon einmal im Modul Funktionen nachschauen.

Neues Projekt erstellen

Nachdem du deine Eingaben bestätigt hast, erscheint nach einer kurzen Wartezeit das Fenster, das im nächsten Screenshot zu sehen ist.

Ein neues Projekt erstellen

Hier musst du nun ganz rechts unten auf Neues Projekt erstellen klicken. Daraufhin werden dir einige weitere Auswahloptionen angezeigt. Hierbei wählst du Leeres Projekt aus.

Ein Projekt ohne vorgefertigte Inhalte erstellen

Klicke dann auf Weiter.

Im nächsten Fenster kannst du dann einen Namen für das Projekt auswählen. Wir nennen es ErstesProgramm.

Den Speicherort (Ort) kannst du unverändert so stehen lassen.

Den Namen für das Projekt vorgeben

Wenn du nun auf Erstellen klickst, öffnet sich die eigentliche Oberfläche der IDE. Diese sollte etwa so aussehen:

Die Oberfläche der IDE. Der Projektmappen-Explorer kann beliebig platziert werden – im Video befindet er sich bspw. auf der rechten Seite

Neue Datei hinzufügen

Klicke nun in der linken Spalte mit der rechten Maustaste auf Quelldateien und dann HinzufügenNeues Element.

Ein neues Element zum Projekt hinzufügen

Eine noch bessere Vorgehensweise besteht darin, dir gleich die Shortcuts für diese Aktion zu merken:

  • für Windows: Strg + Umschalttaste + A
  • für macOS: cmd + Umschalttaste + A

Auf diese Weise kannst du die Dateien noch schneller zum Projekt hinzufügen. Da du deinem Projekt relativ häufig neue Elemente hinzufügen wirst, sparst du dir auf Dauer mit diesem kleinen Trick viel Zeit.

Daraufhin öffnet sich ein weiteres Fenster, in dem du auswählen musst, welche Art von Datei du gestalten willst. In der Auswahlliste auf der linken Seite wählst du hierbei zunächst Visual C++ aus. Danach klickst du im zentralen Fenster auf C++-Datei.

Die Auswahl des richtigen Dateityps

Nun kannst du noch unten im Fenster einen Namen für die Datei vorgeben. Es ist jedoch auch möglich, einfach die Standards-Bezeichnung (Quelle.cpp) zu übernehmen. Wichtig ist es lediglich, darauf zu achten, dass jedes C++-Programm die Endung .cpp erhalten muss. Wenn du nun auf Hinzufügen klickst, erscheint im zentralen Bereich der IDE das Fenster, das im nächsten Screenshot zu sehen ist. Dieses Fenster übernimmt nun die Funktion, die ansonsten der Texteditor übernommen hätte. Das bedeutet, dass du hier also den Quellcode für dein Programm einfügen kannst.

Die Oberfläche für die Eingabe des Quellcodes

Programmcode einfügen

Nun musst du über diese Oberfläche den Code für dein erstes Programm einfügen.

Bibliothek einbinden

Die erste Zeile sieht wie folgt aus:

#include <iostream>

Hierbei handelt es sich um das sogenannte include-Statement. Damit bindest du sogenannte Bibliotheken in dein Programm ein. Das ist notwendig, da alle Befehle, die wir in C++ verwenden können, in verschiedenen Bibliotheken abgespeichert sind. Dabei handelt es sich um eine Sammlung von Befehls-Definitionen, die genau vorgibt, welche Aktion das Programm ausführen soll, wenn du den entsprechenden Ausdruck aufrufst. Wenn du einen dieser Befehle verwenden willst, musst du dem Compiler einen Hinweis darauf geben, welche Bibliothek du nutzen willst. Und dazu verwendet man das include-Statement.

Vor diesem steht immer das Raute-Zeichen. Das ist notwendig, da es sich hierbei nicht um einen Teil des eigentlichen Programms handelt, sondern um eine sogenannte Compiler-Anweisung. Das include-Statement sagt dem Compiler, dass dieser bei der Gestaltung des Programms die genannte Bibliothek einbinden soll. Compiler-Anweisungen musst du immer mit dem Raute-Zeichen kennzeichnen.

Für dein erstes Programm benötigst du die Bibliothek iostream. Diese enthält die grundlegenden C++-Befehle und ist für fast jedes Programm notwendig.

main()-Funktion

Danach folgt diese Zeile:

int main()

Damit definierst du die sogenannte main()-Funktion. Diese stellt den Einstiegspunkt für jedes Programm in C++ dar. Die Ausführung beginnt stets mit dem ersten Befehl, der in dieser Funktion steht. Vor dem Ausdruck main steht noch der Ausdruck int. Dieser bezieht sich auf den Rückgabewert der Funktion. Was das genau bedeutet, lernst du in der Einheit Eigene Funktionen kennen. Für den Anfang ist es lediglich wichtig, dass du diesen Ausdruck immer angibst. In der gleichen Einheit wirst du dich auch mit der Bedeutung der leeren Klammer befassen. Bislang sei nur so viel gesagt: Hinter dem Namen jeder Funktion steht eine Klammer, in der du ihr Werte übergeben kannst. Willst du dies nicht tun, musst du diese Klammer trotzdem angeben – sie bleibt jedoch leer. Sie macht deutlich, dass es sich hierbei um eine Funktion handelt.

Namensraum

In der nächsten Zeile öffnest du eine geschweifte Klammer. Das ist notwendig, da der Inhalt jeder Funktion in C++ in geschweiften Klammern stehen muss. Danach folgt der einzige Befehl, den wir in unserem Programm ausführen wollen:

{     

    std::cout << "Hello Edley!"; 

}

Der erste Teil des Ausdrucks – also der Begriff std – bezieht sich auf den sogenannten Namensraum. Diese Angabe ist notwendig, da es sich beim Ausgabebefehl, mit dem wir den Text ausgeben wollen, in C++ nicht um einen geschützten Begriff handelt. Wie bereits bei der Erklärung des include-Statements gesagt wurde, sind die einzelnen Befehle, die du in C++ verwenden kannst, in Bibliotheken abgespeichert. Allerdings gibt es hierbei sehr viele unterschiedliche Ausführungen. Du kannst sogar eigene Bibliotheken erstellen und darin Funktionen definieren. Es wäre möglich, in jeder einzelnen von ihnen den Begriff cout auf eine andere Weise zu festzulegen. Das kann zu Verwechslungen führen. Daher musst du immer den Namensraum des entsprechenden Ausdrucks angeben. Dieser hat die Eigenschaft, dass jede Bezeichnung darin nur ein einziges Mal definiert werden darf. Das stellt eine eindeutige Zuordnung sicher.

Ausgabe

Der Ausgabebefehl, den wir verwenden möchten, ist innerhalb der Bibliothek iostream im Namensraum std (als Abkürzung für „Standard“) definiert. Alle gängigen Standard-Befehle befinden sich in diesem Namensraum, sodass du diese Angabe noch sehr häufig verwenden wirst.

Danach musst du zwei Doppelpunkte anbringen. Diese verbinden den Namensraum mit dem darauf folgenden Befehl. Unser Ausgabebefehl lautet cout. Dieser sorgt dafür, dass unser Programm den darauf folgenden Text ausgibt.

Den Inhalt musst du dann nach einem doppelten Kleinerzeichen (<<) einfügen. Dieses doppelte Kleinerzeichen wird als Insertion Operator – auch Output Operator genannt. In deutschsprachigen Werken findet auch manchmal die Bezeichnung Umleitungsoperator Verwendung. Dieser weist deinem Ausgabebefehl den darauf folgenden Text zu.

Eingabe. Analog dazu gibt es den Extraction Operator oder Input Operator. Dieser besteht aus einem doppelten Größerzeichen ( >> ) und er kommt dazu zum Einsatz, Eingaben durch den Anwender aufzunehmen. Wie du diesen verwendest, erfährst du in der Einheit Variablen. Bisher musst du lediglich darauf achten, dass du diese beiden sehr ähnlichen Operatoren nicht verwechselst und für den Ausgabebefehl immer den Insertion Operator verwendest.

Formalitäten

Wenn du dann den Text eingibst, musst du lediglich darauf achten, diesen in Anführungszeichen ("") zu setzen. Den Befehl schließt du dann – genau wie alle übrigen Befehle in C++ – mit einem Semikolon (;) ab. Daraufhin ist es nur noch notwendig, die geschweifte Klammer wieder zu schließen (}).

Visual Studio das bereits ganz automatisch für dich erledigt. Wenn du eine Klammer öffnest, schließt die IDE diese auch wieder. Das verhindert, dass du die schließende Klammer vergisst und stellt eine erhebliche Erleichterung beim Programmieren dar. Darüber hinaus hast du beim Erstellen deines ersten Programms sicherlich noch einige weitere praktische Funktionen dieser Software bemerkt. Beispielsweise hat sie automatisch Einrückungen eingefügt und die Schlüsselbegriffe farbig markiert (sogenanntes Syntax Highlighting). Das sorgt für einen deutlich übersichtlicheren Code.

In C++ sind diese Einrückungen jedoch für die Funktion des Programms ohne Bedeutung. Du könntest sie auch problemlos weglassen. Das stellt einen wichtigen Unterschied zu manchen anderen Programmiersprachen – beispielsweise Python – dar.


Nachdem du all diese Befehle eingefügt hast, ist unser erstes Programm fertiggestellt. Der komplette Code sieht dann so aus:

#include <iostream>

int main()

{

    std::cout << "Hello Edley!";

}

Programm ausführen

Nun hast du den Code für dein erstes Programm bereits erstellt. Allerdings handelt es sich hierbei bisher lediglich um Text. Dieser führt bislang keinerlei Aktion durch. Dazu musst du den Code erst kompilieren und ausführen.

Speichern

Hierfür ist es zunächst notwendig, das Programm abzuspeichern. Dazu kannst du in der Werkzeugleiste auf das Disketten-Symbol klicken oder über die Menüleiste Datei > Quelle.cpp speichern auswählen. Da du deinen Code oft zwischenspeichern solltest, bieten sich auch hier Shortcuts an:

  • für Windows: Strg + S
  • für macOS: cmd + S

Ausführen

Nun kannst du das Programm ausführen. Dafür gibt es mehrere Möglichkeiten. Beispielsweise kannst du auf das grüne Dreieck mit der Beschriftung Lokaler Windows-Debugger klicken. Dieses befindet sich in der Werkzeugleiste über dem Fenster für die Texteingabe – so wie dies im folgenden Screenshot zu sehen ist. Alternativ dazu kannst du auch in der Menüleiste auf Debuggen > Debuggen starten klicken. Noch einfacher ist es, wenn du stattdessen die F5-Taste betätigst.

Die Schaltfläche in der Werkzeugleiste zum Ausführen des Programms

Nach einer kurzen Wartezeit öffnet sich ein Fenster, das so aussehen sollte, wie das im nächsten Screenshot zu sehen ist. Hier erscheint genau der Text, den du über den Ausgabebefehl eingefügt hast. Das zeigt, dass das Programm so funktioniert, wie geplant. Danach erscheint noch ein automatisch generierter Text, der bei jedem Programm hinzugefügt wird und der den Umgang mit dem Ausgabefenster erläutert.

Die Ausgabe des ersten Programms

Was ist hierbei passiert?

In der vorherigen Einheit hast du gelernt, dass es vor dem Ausführen notwendig ist, das Programm zu kompilieren. Dabei entsteht eine ausführbare Datei in Maschinensprache. Um das nachzuvollziehen, kannst du den Ordner öffnen, in dem du dein Projekt abgespeichert hast. Wenn du den Standard-Pfad bei der Installation nicht verändert hast, erstellt Visual Studio unter Windows hierfür im Ordner PC ein neues Verzeichnis mit der Bezeichnung source. Darin findest du das Unterverzeichnis repos, in dem sich für jedes Projekt, das du erstellt hast, ein eigener Ordner befindet. Daher klickst du nun auf ErstesProgramm. Danach öffnest du das Verzeichnis Debug. Hier entdeckst du nun die ausführbare Datei ErstesProgramm.exe – wenn du einen Windows-Rechner verwendest. (Unter macOS hat die Datei die Endung .app.) Diese Datei war vor der ersten Ausführung noch nicht vorhanden.

Hierbei handelt es sich um das Ergebnis des Kompilierungs-Prozesses. Wenn du die F5-Taste betätigst oder eine der anderen Alternativen für die Ausführung des Programms nutzt, ruft Visual Studio zunächst den Compiler auf. Dieser ist bereits in die IDE integriert, sodass du dich um dessen Installation nicht kümmern musst. Der Compiler übernimmt den beschriebenen Übersetzungsprozess und erstellt die ausführbare Datei. Im Anschluss daran ruft Visual Studio diese Datei automatisch auf.

Wenn die ausführbare Datei einmal erstellt ist, ist die Ausführung jedoch nicht mehr an die Verwendung der IDE gebunden. Du kannst das Programm nun theoretisch auch einfach per Doppelklick aufrufen, um es auszuführen. Allerdings erscheint das Fenster in diesem Fall bislang nur für einige Sekundenbruchteile, da es sich nach der Ausführung sofort wieder schließt. Dieses Problem lässt sich später jedoch beheben – beispielsweise indem du einen Eingabebefehl am Ende unseres Programms einfügst. Für den Moment ist es lediglich wichtig, zu wissen, dass du die ausführbaren Programme, die beim Kompilieren entstehen, auch problemlos außerhalb der IDE ausführen kannst.

Wie du siehst, ist es ganz einfach, ein kleines Programm für die Ausgabe eines Texts in C++ zu erstellen. Wenn du willst, kannst du nun selbst etwas experimentieren – beispielsweise indem du den Text für die Ausgabe veränderst oder mehrere Ausgabe-Befehle in das Programm einfügst. In der nächsten Einheit lernst du, wie du verschiedene Werte in dein Programm aufnimmst, sie in sogenannten Variablen abspeicherst und Berechnungen damit durchführst. Auf diese Weise kannst du den Funktionsumfang deiner Programme deutlich erweitern.

Kommentare

In C++ gibt es genau wie in allen übrigen Programmiersprachen die Möglichkeit, Kommentare einzufügen. Diese haben auf den Ablauf des Programms jedoch keinerlei Auswirkungen. Der Compiler ignoriert sie. Ihre Aufgabe besteht darin, Anmerkungen in den Quellcode einzufügen, die das Verständnis erleichtern.

Um Kommentare einzufügen, bestehen zwei Möglichkeiten. Zum einen kannst du einen doppelten Schrägstrich (//) verwenden. Dieser führt dazu, dass alles, was in der gleichen Zeile rechts neben dieser Kennzeichnung steht, als Kommentar behandelt wird. Zum anderen kannst du den Schrägstrich mit dem Sternsymbol (/*) verwenden, um den Anfang eines Kommentars zu kennzeichnen. In diesem Fall musst du jedoch auch das Ende deutlich machen, was bei der ersten Alternative nicht notwendig war. Zu diesem Zweck kommen die gleichen Zeichen – allerdings in umgekehrter Reihenfolge (*/) –  zum Einsatz. Das bietet sich in erster Linie für Kommentare an, die sich über mehrere Zeilen erstrecken.

Der folgende Code gibt nochmals das erste Programm wieder – dieses Mal jedoch mit einigen Kommentaren. Dabei haben wir beide Möglichkeiten der Kennzeichnung verwendet. Wenn du das Programm ausführst, bemerkst du jedoch keinerlei Unterschied zum oben verwendeten Code:

#include <iostream>

/*
Das erste Programm in diesem Buch dient der Vorstellung des cout-Befehls.
Es gibt die Nachricht "Hello Edley!" aus.
*/

int main()
{
    // Hier steht der Ausgabebefehl.
    std::cout << "Hello Edley!";
}