Ihr erstes C++-Programm In diesem Kapitel ▶ C++ kennenlernen ▶ Code::Blocks unter Windows, Ubuntu Linux und Mac OS X installieren ▶ Ihr erstes C++-Programm erstellen 1 ▶ Ihr Programm ausführen O kay, da sind wir: nur Sie und ich, niemand sonst. Wir müssen nur noch anfangen. Warum fangen wir nicht mit einigen Grundbegriffen an? Ein Computer ist eine erstaunlich schnelle, aber unglaublich dumme Maschine. Ein Computer kann (innerhalb vernünftiger Grenzen) alles tun, was Sie ihm sagen, aber er tut genau das, was Sie ihm sagen – nicht mehr und nicht weniger. Leider verstehen Computer keine normale menschliche Sprache – weder Englisch noch Deutsch. Okay, möglicherweise wenden Sie ein, dass Sie Computer gesehen haben, die auf natürliche Sprache reagierten. Doch was Sie tatsächlich gesehen haben, war ein Computer, der ein Programm ausführte, das sinnvolle natürlichsprachliche Aussagen verstehen konnte. Computer verstehen eine Sprache, die als Programmiersprache oder Maschinensprache bezeichnet wird. Es ist für Menschen möglich, aber extrem schwierig, Maschinensprache zu sprechen. Deshalb wurden Sprachen wie beispielsweise C++ erfunden, mit denen sich Menschen und Computer gewissermaßen in der Mitte treffen und verständigen können. Menschen können C++ »sprechen« oder »schreiben«, und C++ wird in Maschinensprache übersetzt, die der Computer versteht. Was ist ein Programm? Ein C++-Programm ist eine Textdatei, die eine Folge von C++-Befehlen enthält, die, den Regeln der C++-Grammatik entsprechend, zusammengefügt worden sind. Diese Textdatei wird als Quelldatei bezeichnet (wahrscheinlich, weil sie die Quelle aller Frustrationen ist). Eine C++-Quelldatei hat die Namenerweiterung .cpp, so wie ein Adobe-Acrobat-Dokument die Endung .pdf oder eine MS-DOS-Batchdatei (wie Sie vielleicht noch wissen) die Endung .bat hat. Die Erweiterung .cpp ist nur eine Konvention. Beim Programmieren in C++ geht es darum, eine Folge von Befehlen zu schreiben, die in ein Programm in Maschinensprache umgewandelt werden kann, das tatsächlich tut, was wir tun wollen. Diese Umwandlung wird Kompilierung genannt und vom Compiler durchgeführt. Der aus dem Quellcode kompilierte Maschinencode muss mit Programmstartcode und Code, der beim Beenden des Programms ausgeführt wird, sowie mit Standardbibliotheksfunktionen kombiniert werden. Dieser Vorgang wird Linken genannt. Die Kompilierung und das Linken 31 C++ für Dummies werden mit dem Begriff Erstellen (englisch Build) zusammengefasst. Das Ergebnis ist ein sogenanntes Executable, eine von der Maschine ausführbare Datei, die unter Windows standardmäßig die Erweiterung .exe hat. Unter Linux und Macintosh OS X haben ausführbare Dateien keine bestimmte Dateinamenserweiterung. Das klingt einfach. Warum also die Umstände? Lesen Sie weiter. Um ein Programm zu schreiben, brauchen Sie zwei spezielle Computerprogramme. Eins (der Editor) ist das, was Sie zum Schreiben des Programmcodes in der .cpp-Datei benutzen. Das andere (der Compiler) übersetzt Ihr Programm in maschinenlesbare .exe-Dateien, die das Programm dann tatsächlich ausführen (eine Tabelle öffnen, ein komisches Geräusch erzeugen, herunterkommende Asteroiden zerstören und so weiter). Heutzutage vereinigen Entwicklertools häufig Compiler und Editor in einem einzigen Paket – einer Entwicklungsumgebung (IDE). Nachdem Sie mit der Eingabe des Programms fertig sind, müssen Sie nur auf eine Schaltfläche klicken, um das fertige Programm zu erzeugen. Glücklicherweise gibt es frei verfügbare C++-Entwicklungsumgebungen. Wir benutzen eine davon in diesem Buch: Code::Blocks. Dieser Editor arbeitet mit vielen unterschiedlichen Compilern zusammen. Sie können die Version von Code::Blocks zusammen mit dem GNUgcc-Compiler, mit dem dieses Buch geschrieben wurde, in Versionen für Windows, Linux und Macintosh OS X von der Code::Blocks-Website unter www.codeblocks.org herunterladen. Dies ist auch im Abschnitt zur Installation weiter hinten in diesem Kapitel beschrieben. Obwohl Code::Blocks Public Domain ist, sollten Sie einen kleinen Beitrag bezahlen, damit die Entwicklung des Werkzeugs weiterhin finanziert werden kann. Sie müssen nicht zahlen, aber Sie können es tun, falls Sie wollen. Die Webseite enthält dazu mehr Details. Ich habe die Programme in diesem Buch mit Code::Blocks 13.12 getestet. In dessen Lieferumfang befindet sich der gcc-Compiler Version 4.7.1, einer Version, die fast den kompletten C++11-Standard implementiert. Wenn Sie mögen, können Sie auch eine andere Version von gcc oder sogar einen anderen Compiler verwenden. Es kann jedoch sein, dass diese nicht den kompletten C++11-Standard implementieren. Aus diesem Grunde sind die C++11-Erweiterungen mit dem nebenstehenden Symbol versehen. In der Version 4.7.1 des gcc-Compilers sind noch keine der Erweiterungen des C++14-Standards implementiert. Absätze, die diese Erweiterungen beschreiben, sind mit dem nebenstehenden Symbol markiert, da der Compiler diese Features eines Tages mit Sicherheit unterstützen wird. Zugegeben, das Buch ist ein wenig Windows-zentriert. Dennoch habe ich alle Programme aus diesem Buch unter Windows 2000/XP/Vista/7/8, Ubuntu Linux und Macintosh OS X getestet. Auf eventuelle Unterschiede zwischen den Betriebssystemen weise ich im Text hin. Außerdem finden Sie im folgenden Abschnitt Installationsanweisungen für alle drei Betriebssysteme. Für andere Linux-Distributionen und andere Versionen von Macintosh OS stehen ebenfalls Versionen von Code::Blocks zur Verfügung. Die Beispielprogramme dieses Buches sollten auch mit den anderen Code::Blocks-Versionen funktionieren. 32 1 ➤ Ihr erstes C++-Programm Das Code::Blocks/gcc-Paket erzeugt 32-Bit-Programme, aber es ist nicht einfach, damit Programme zu erstellen, die in einem Fenster ablaufen. Die Beispielprogramme in diesem Buch werden von der Eingabeaufforderung/Konsole gestartet und nehmen dort auch ihre Ausgaben vor. So langweilig sich das auch anhören mag, empfehle ich ganz nachdrücklich, zunächst die Beispiele aus dem Buch zu bearbeiten, bevor Sie sich an die Programmierung von Anwendungen heranwagen, die in einem Fenster ablaufen. C++-Programmierung und Programmierung von grafisch orientierten Anwendungen, die die Fensterumgebung der modernen Betriebssysteme unterstützen, sind zunächst zwei getrennte Dinge und sollten das – zum Wohl Ihrer geistigen Gesundheit – auch bleiben. Führen Sie die Schritte im nächsten Abschnitt aus, um Code::Blocks zu installieren und Ihr erstes C++-Programm zu erstellen. Mit diesem Programm können Sie einen Temperaturwert eingeben und von Celsius-Graden in Fahrenheit-Grade umwandeln. Code::Blocks installieren Auf der Website zum Buch (http://downloads.fuer–dummies.de) finden Sie die Version der Code::Blocks-Umgebung, die zum Zeitpunkt der Übersetzung dieses Buches aktuell war, und zwar für Windows, Ubuntu Linux und Macintosh OS X 10.6 oder neuer. Führen Sie die Schritte zur Installation durch, die dem vom Ihnen eingesetzten Betriebssystem entsprechen. Windows Die Code::Blocks-Umgebung wird als komprimierte, ausführbare Datei geliefert, die leicht zu installieren ist und die mit allen Windows-Versionen ab Windows 2000 kompatibel ist. Installieren Sie Code::Blocks wie folgt: 1. Laden Sie die ausführbare Datei codeblocks–13.12mingw–setup.exe von http:// downloads.fuer–dummies.de herunter. Speichern Sie die Datei auf Ihrem Desktop oder an einem anderen Speicherort, den Sie leicht wiederfinden können. Diese Datei enthält die Version 4.71 des gcc-Compilers. Dies ist zwar nicht die neueste Version von gcc, aber die Version, die von Code::Blocks empfohlen wird. Falls Sie die neuere, aber vielleicht leicht fehlerbehaftete Version 4.81 verwenden wollen, können Sie alternativ auch codeblocks–13.12.mingw– setup–TDM–GCC–481.exe herunterladen und installieren. Ich habe die Programme dieses Buches mit beiden Versionen getestet; zum Schreiben habe ich Version 4.71 benutzt. 2. Doppelklicken Sie auf die heruntergeladene Datei. 3. Je nachdem, welche Windows-Version Sie verwenden, kann es sein, dass Sie das Benutzerkontensteuerungs-Dialogfeld mit dem Hinweis sehen, dass die Datei nicht aus einer vertrauenswürdigen Quelle stammt. Klicken Sie dort auf JA, damit die Installation gestartet wird. 33 C++ für Dummies 4. Bestätigen Sie den Begrüßungsbildschirm mit einem Klick auf NEXT. 5. Lesen Sie die Lizenzbedingungen und klicken Sie dann auf I AGREE, wenn Sie mit den Bedingungen leben können. Es ist nicht wirklich so, dass Sie hier eine Wahl haben. Wenn Sie auf CANCEL klicken, wird die Installation abgebrochen. Wenn Sie die Lizenzvereinbarung akzeptieren, wird ein Dialogfeld mit einigen Installationsoptionen geöffnet. Die angezeigten Standardeinstellungen sind in Ordnung. Das Installationsprogramm erlaubt es, auch nur einen Teil der angebotenen Komponenten zu installieren. Sie müssen mindestens die Optionen DEFAULT INSTALL und MINGW COMPILER SUITE aktivieren. Die Standardeinstellung ist, alles zu installieren – das ist auch die beste Wahl. Falls die Option MINGW COMPILER SUITE nicht angezeigt wird, haben Sie eine Version von Code::Blocks heruntergeladen, die gcc nicht enthält. Diese Version wird nicht wie im Buch beschrieben funktionieren. 6. Klicken Sie auf NEXT. Das Installationsprogramm fragt Sie, wo Code::Blocks installiert werden soll. 7. Akzeptieren Sie das angezeigte Standardverzeichnis und klicken Sie auf INSTALL. Nun kopiert Code::Blocks zahlreiche Dateien in das Installationsverzeichnis und fragt am Ende, ob Sie das Programm sofort starten wollen: DO YOU WANT TO RUN CODE::BLOCKS NOW? 8. Klicken Sie auf JA, um Code::Blocks gleich zu starten. Code::Blocks fragt, welchen Compiler Sie verwenden wollen. Die Standardeinstellung ist GNU gcc Compiler; übernehmen Sie diese Option. 9. Innerhalb von Code::Blocks wählen Sie den Menüpunkt SETTINGS I COMPILER. 10. Öffnen Sie in der Kategorie GLOBAL COMPILER SETTINGS die Registerkarte COMPILER FLAGS. 11. Vergewissern Sie sich, dass die in Abbildung 1.1 gezeigten Optionen eingeschaltet sind: • ENABLE ALL COMMON COMPILER WARNINGS • HAVE G++ FOLLOW THE C++11 ISO C++ LANGUAGE STANDARD 12. Öffnen Sie die Registerkarte TOOLCHAIN EXECUTABLES und vergewissern Sie sich, dass sie so aussieht, wie in Abbildung 1.2 gezeigt. Die Standardeinstellung für den gcc-Compiler ist der Ordner MinGW bin unterhalb des Verzeichnisses, in dem Code::Blocks installiert ist. 13. Schließen Sie das Dialogfeld SETTINGS. 14. Klicken Sie im Setup-Fenster von Code::Blocks auf NEXT und dann auf FINISH, um das Setup-Programm zu beenden. Das Setup-Programm wird geschlossen. 34 1 ➤ Ihr erstes C++-Programm Abbildung 1.1: Achten Sie darauf, dass alle Warnungen und die Unterstützung von C++11 eingeschaltet sind. Abbildung 1.2: Vergewissern Sie sich, dass das Installationsverzeichnis des Compilers richtig konfiguriert ist. 35 C++ für Dummies Wenn das Standardverzeichnis leer ist, weiß Code::Blocks nicht, wo sich der gccCompiler befindet, und es wird nicht in der Lage sein, Ihre Programme auszuführen. Achten Sie darauf, eine Version von Code::Blocks herunterzuladen, die gcc enthält, und dass bei der Installation die Option MINGW eingeschaltet ist. Wenn Sie einen bereits installierten gcc-Compiler verwenden, müssen Sie Code::Blocks mitteilen, in welchem Ordner sich der Compiler befindet. Ubuntu Linux Die Linux-Version von Code::Blocks enthält nicht den gcc-Compiler, daher ist die Installation ein zweistufiger Prozess. Zuerst müssen Sie gcc installieren, danach können Sie Code::Blocks installieren. gcc installieren Der gcc-Compiler lässt sich einfach unter Linux installieren. Führen Sie dazu die folgenden Schritte durch: 1. Geben Sie die folgenden Befehle in einer Konsole ein: sudo apt–get update sudo apt–get upgrade sudo apt–get install g++ Die Standard-Distribution von Ubuntu Linux enthält den GNU-C-Compiler, aber nicht die C++-Erweiterungen und insbesondere nicht die Erweiterungen des C++11-Standards. Die ersten beiden Befehle aktualisieren die Tools, die Sie bereits haben. Der dritte Befehl installiert C++. 2. Geben Sie den folgenden Befehl in einer Konsole ein gcc ––version Ich verwende Ubuntu 13.04; diese Version hat GNU C++ Version 4.7.3 heruntergeladen. Sie sollten die Version 4.7.1 oder neuer verwenden. Wenn Sie eine ältere Version einsetzen, kann es sein, dass einige der C++11-Features nicht funktionieren, der Rest sollte aber okay sein. Wenn Sie Debian Linux verwenden, sind die Befehle die gleichen. Wenn Sie Red Hat Linux einsetzen, ersetzen Sie den Befehl apt–get durch yum, wie hier exemplarisch gezeigt: sudo yum install g++ Code::Blocks installieren Die gute Nachricht für alle, die es betrifft, ist, dass das Ubuntu Software Center eine Version von Code::Blocks anbietet, die Sie mit Ubuntu verwenden können. Viele andere Linux-Versionen stellen ein ähnliches Tool wie das Software Center bereit. 36 1 ➤ Ihr erstes C++-Programm Führen Sie folgende Schritte durch, um Code::Blocks zu installieren. 1. Klicken Sie auf dem Ubuntu-Desktop auf das Symbol des Software Centers. 2. Wählen Sie in der Liste der verfügbaren Software Code::Blocks aus. Hierdurch wird die Installation gestartet. Code::Blocks sucht auf Ihrer Festplatte nach dem C++-Compiler. Er sollte ohne Probleme gefunden werden können; falls nicht, führen Sie die folgenden Schritte durch: 3. Starten Sie Code::Blocks. 4. Wählen Sie SETTINGS I COMPILER. 5. Öffnen Sie die Registerkarte COMPILER FLAGS. 6. Achten Sie darauf, dass die beiden folgenden Optionen eingeschaltet sind (siehe Abbildung 1.1): • ENABLE ALL COMMON COMPILER WARNINGS • HAVE G++ FOLLOW THE C++11 ISO C++ LANGUAGE STANDARD 7. Öffnen Sie die Registerkarte TOOLCHAIN EXECUTABLES. 8. Klicken Sie auf die Schaltfläche mit den Auslassungspunkten. 9. Navigieren Sie zu /usr, es sei denn, Sie haben den gcc-Compiler in ein anderes als das Standardverzeichnis /user/bin installiert. 10. Bei C COMPILER sollte gcc, bei C++ ebenfalls g++ stehen. COMPILER sollte g++ und bei LINKER FOR DYNAMIC LIBS 11. Klicken Sie auf OK, um das Fenster zu schließen. Macintosh Die Macintosh-Version von Code::Blocks verwendet den Compiler der Xcode-Distribution von Apple. Aus diesem Grunde habe ich die Installation in drei Teile untergliedert. Xcode installieren Xcode ist ein kostenloses Entwicklungspaket, das von Apple bereitgestellt wird und das Sie benötigen. Führen Sie zuerst folgende Schritte durch, um es zu installieren: 1. Starten Sie den App Store und suchen Sie nach Xcode. 2. Klicken Sie in den Suchergebnissen auf Xcode, um die aktuelle Version zu laden (siehe Abbildung 1.3). 37 C++ für Dummies Abbildung 1.3: Sie können Xcode im App Store kostenlos herunterladen. 3. Klicken Sie auf GRATIS. Die Symbolbeschriftung wird in APP cken Sie auf APP INSTALLIEREN. INSTALLIEREN geändert. Kli- 4. Geben Sie Ihre Apple-ID und das zugehörende Kennwort ein. Xcode wird installiert. Der Download und die Installation können einen Moment dauern, da die Downloadgröße von Xcode mehr als zwei Gigabyte beträgt. Die Befehlszeilentools für Xcode installieren Schaut man sich die Downloadgröße von Xcode an, so könnte man meinen, dass Sie nun alles haben, was Sie brauchen. Das stimmt jedoch leider nicht. Sie benötigen ein weiteres Package von Apple, damit die Freude komplett wird und Sie auf Ihrem Mac einen gcc-Compiler erhalten. Führen Sie folgende Schritte durch, um die Befehlszeilentools für Xcode zu installieren: 1. Öffnen Sie den Safari-Browser und surfen Sie zu http://developer.apple.com/ downloads. Es kann sein, dass Sie aufgefordert werden, sich für eine Apple Developer ID zu registrieren. Tun Sie es – es kostet nichts. 38 1 ➤ Ihr erstes C++-Programm 2. Suchen Sie nach Command Line Tools for Xcode. Wählen Sie je nach OS-X-Version, die Sie verwenden, die entsprechende Disk-Image-Datei aus (siehe Abbildung 1.4) und klicken Sie auf das Downloadsymbol. Abbildung 1.4: Wählen Sie die Disk-Image-Datei mit den Befehlszeilentools für die von Ihnen verwendete OS-X-Version aus. 3. Öffnen Sie die heruntergeladene Disk-Image-Datei. 4. Doppelklicken Sie auf das enthaltene Installer-Paket, um die Installation zu starten. 5. Übernehmen Sie alle Standardeinstellungen des Installers. Die Installation sollte ohne Probleme vonstattengehen. Code::Blocks installieren Als letzte Aktion müssen Sie nun den Code::Blocks-Editor installieren und herunterladen. 1. Öffnen Sie den Safari-Browser und surfen Sie zu http://www.codeblocks.org/ downloads. 2. Klicken Sie auf DOWNLOADS I BINARIES. 3. Klicken Sie auf MAC OS X. 4. Wählen Sie entweder BerliOS oder Sourceforge.net als Downloadserver aus. Zum Zeitpunkt der Übersetzung dieses Buches war CodeBlocks–13.12–mac.zip die aktuelle Version. 39 C++ für Dummies 5. Öffnen Sie die heruntergeladene Zip-Datei und verschieben Sie CodeBlocks.app in den Ordner Programme. 6. Öffnen Sie den Ordner Programme, klicken Sie CodeBlocks.app mit gedrückter Control-Taste an und wählen Sie ÖFFNEN. Mit dieser Vorgehensweise können Sie auch Programme öffnen, die nicht aus dem App Store oder von verifizierten Entwicklern stammen, ohne hierzu in den Systemeinstellungen die Sicherheitseinstellungen für heruntergeladene Apps zu ändern. Mac OS X zeigt das Fenster an, das Sie in Abbildung 1.5 sehen können. Abbildung 1.5: Bestätigen Sie, dass Sie CodeBlocks.app öffnen wollen. 7. Klicken Sie auf ÖFFNEN. Code::Blocks wird gestartet und sollte den gcc-Compiler finden, der mit den Befehlszeilentools installiert wurde. 8. Wählen Sie wie in Abbildung 1.6 gezeigt den gcc-Compiler aus. Klicken Sie auf SET DEFAULT und dann auf OK. AS Abbildung 1.6: Code::Blocks findet beim ersten Programmstart automatisch den gcc-Compiler. Code::Blocks wird geöffnet und der Arbeitsbereich angezeigt. 9. Wählen Sie SETTINGS I COMPILER und schalten Sie die Option HAVE G++ FOLLOW THE COMING C++0X ISO C++ LANGUAGE STANDARD ein. Klicken Sie auf OK, um das Dialogfeld zu schließen. Sie können nun Ihr erstes C++-Programm erstellen. 40 1 ➤ Ihr erstes C++-Programm Ihr erstes C++-Programm erstellen In diesem Abschnitt erstellen Sie Ihr erstes C++-Programm. Zunächst geben Sie den C++Code in eine Datei namens CONVERT.cpp ein, dann wandeln Sie den C++-Code in ein ausführbares Programm um. Ein Projekt anlegen Um ein C++-Programm zu erstellen, müssen Sie als Erstes wissen, was ein Projekt ist. Ein Projekt teilt Code::Blocks die Namen der einzubindenden .CPP-Quelldateien mit und legt fest, welche Art Programm erstellt werden soll. Die meisten Programme in diesem Buch bestehen aus einer einzigen Quelldatei und verwenden den Befehlszeilenstil. 1. Starten Sie die Code::Blocks-Entwicklungsumgebung. 2. Wählen Sie FILE I NEW I PROJECT. 3. Klicken Sie auf das Icon CONSOLE APPLICATION und dann auf GO. 4. Im nächsten Fenster mit der Assistentenseite klicken Sie auf NEXT. 5. Wählen Sie nun die Programmiersprache aus, indem Sie den Eintrag C++ markieren und auf NEXT klicken. Code::Blocks unterstützt außer C++ auch noch das gute alte C. 6. Klicken Sie neben FOLDER TO CREATE PROJECT IN auf die Schaltfläche mit den drei Auslassungspunkten. 7. Öffnen Sie den Knoten COMPUTER und markieren Sie unter Windows das Laufwerk C:. 8. Klicken Sie im unteren Bereich des Dialogfelds auf NEUEN ORDNER ERSTELLEN. 9. Nennen Sie den Ordner CPP_Programme. 10. Erstellen Sie unterhalb von CPP_Programme einen weiteren Ordner und nennen Sie diesen Kap01. Das Ergebnis sollte so aussehen wie in Abbildung 1.7 gezeigt. 11. In das Feld PROJECT TITLE geben Sie den Namen des Projekts an, für unser Beispiel lautet er Conversion. Das Ergebnis der Eingaben für Code::Blocks unter Windows sehen Sie in Abbildung 1.8. Die Versionen für Linux und Macintosh OS X sehen bis auf den Pfad gleich aus. 12. Klicken Sie erneut auf NEXT. Im nächsten Fenster werden einige Optionen angezeigt, wie das Projekt erstellt werden soll. Die Vorgaben sind bereits in Ordnung und können beibehalten werden. 13. Mit einem Klick auf FINISH wird das Projekt Conversion erstellt. 41 C++ für Dummies Abbildung 1.7: Speichern Sie das Projekt unter Windows im Ordner CPP_Programme Kap01. Abbildung 1.8: Das Projekt Conversion für unser erstes Programm 42 1 ➤ Ihr erstes C++-Programm Den C++-Code eingeben Das Projekt Conversion besteht nun aus einer einzigen main.cpp-Datei, die lediglich die Zeichenfolge »Hello World« ausgibt. Im nächsten Schritt muss das Programm eingegeben werden. 1. Doppelklicken Sie auf main.cpp, das sich im MANAGEMENT-Fenster unter CONVERSION I SOURCES befindet. Code::Blocks öffnet ein Fenster mit dem main.cpp-Programm, das es im Code-Editor angelegt hat, wie in Abbildung 1.9 zu sehen ist. Abbildung 1.9: Das Fenster MANAGEMENT zeigt die Verzeichnisstruktur für alle verfügbaren Programme an. 2. Geben Sie in main.cpp das folgende Programm ein, und zwar exakt so, wie es geschrieben ist. Sie brauchen sich jedoch nicht zu sehr um die Einrückung oder die Anzahl der Leerstellen zu kümmern – es spielt keine Rolle, ob eine Zeile um zwei oder drei Stellen eingerückt ist oder ob zwischen zwei Wörtern ein oder zwei Leerzeichen stehen. Sehr wohl jedoch spielt in C++ die Groß- und Kleinschreibung eine Rolle, weshalb Sie darauf achten müssen, dass alles in Kleinbuchstaben geschrieben ist. Wenn Sie schummeln wollen, können Sie auch direkt die Datei verwenden, die Sie von http://downloads.fuer-dummies.de herunterladen können. Hinweise zur Verwendung der Beispieldateien finden Sie im folgenden Abschnitt. 43 C++ für Dummies // Programm, um die Temperatur von Grad Celsius // in Grad Fahrenheit umzurechnen: // Fahrenheit = Celsius * (212 – 32)/100 + 32 // #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; int main(int nNumberofArgs, char* pszArgs[]) { // die Temperatur in Celsius eingeben int celsius; cout << ''Geben Sie die Temperatur in Grad Celsius ein: ''; cin >> celsius; // den Umrechnungsfaktor für Celsius // in Fahrenheit berechnen int factor; factor = 212 – 32; // mit dem Umrechnungsfaktor Grad Celsius // in Grad Fahrenheit umrechnen int fahrenheit; fahrenheit = factor * celsius/100 + 32; // das Ergebnis (und einen Zeilenumbruch) ausgeben cout << ''entspricht Grad Fahrenheit: ''; cout << fahrenheit << endl; // Warten, bis der Benutzer den Wert gelesen hat // und das Programm beendet. cout << ''Druecken Sie Enter, um fortzufahren ...'' << endl; cin.ignore(10, ' n'); cin.get(); return 0; } 3. Wählen Sie FILE I SAVE, um die Quelldatei zu speichern. Ich weiß, dass dies vielleicht nicht besonders aufregend aussieht, aber Sie haben gerade Ihr erstes C++-Programm erstellt! 44 1 ➤ Ihr erstes C++-Programm Schummeln Sie finden alle Beispielprogramme dieses Buches zusammen mit den Projektdateien, die für das Erstellen der Programme benötigt werden, online. Bevor Sie die Beispielprogramme verwenden können, müssen Sie sie herunterladen und wie nachfolgend beschrieben installieren. Die folgenden Anweisungen beziehen sich auf Windows. Die Schritte, die Sie unter Linux oder Macintosh OS ausführen müssen, sind sehr ähnlich. 1. Starten Sie Ihren Internet-Browser. 2. Surfen Sie zu http://downloads.fuer-dummies.de und lassen Sie sich die Seite mit den Downloads für diese Ausgabe von C++ für Dummies anzeigen. 3. Klicken Sie den Link CPP_BEISPIELPROGRAMME an. Ein Dialogfeld wird angezeigt und fragt Sie, wo Sie die Datei speichern wollen. 4. Klicken Sie auf DATEI SPEICHERN. Windows kopiert die Datei CPP_Beispielprogramme.zip in den angegebenen oder den Standard-Downloadordner (dies könnte der Desktop oder der Ordner Downloads sein). 5. Klicken Sie die Datei CPP_Beispielprogramme.zip mit der rechten Maustaste an und wählen Sie ÖFFNEN. Ein Fenster wird geöffnet und zeigt den Ordner CPP_Programme_Buch an. 6. Kopieren Sie diesen Ordner nach Laufwerk C: So werden alle Projekt- und Quellcodedateien in den Ordner C: CPP_Programme_Buch kopiert. Sie können den Ordner CPP_Programme_Buch aus der ZIP-Datei auch in einen anderen Ort kopieren, aber speichern Sie ihn nicht in einem Ordner, dessen Name Leerzeichen enthält. Unter Windows sollten Sie daher nicht den Ordner Dokumente oder Desktop verwenden, da diese Ordner (abhängig von Ihrem Windows-Anmeldenamen) Leerzeichen enthalten können. Sie können diese Dateien auf zwei Arten verwenden. Ein Weg ist, alle Schritte zu durchlaufen, die ich in diesem Buch beschreibe und dabei zu versuchen, die Programme zuerst selbst zu erstellen. Verwenden Sie hierfür den Ordner C: CPP_Programme mit weiteren, kapitelbezogenen Unterordnern wie weiter oben beschrieben. Falls Probleme auftauchen, können Sie via Kopieren und Einfügen den Quellcode aus dem Ordner C: CPP_Programme_Buch KapXX in Ihr Projekt kopieren. Dies ist die bevorzugte Vorgehensweise. Der zweite Ansatz besteht darin, direkt die heruntergeladenen Projekt- und Quellcodedateien zu verwenden: 1. Öffnen Sie den Ordner C: CPP_Programme_Buch und doppelklicken Sie auf AllePro gramme.workspace. 45 C++ für Dummies Eine Workspace-Datei ist eine einzelne Datei, die Verweise auf ein oder mehrere Projekte enthält. AlleProgramme.workspace enthält Verweise auf alle Beispielprojekt, die im Buch verwendet werden. 2. Klicken Sie im Bereich MANAGEMENT das Projekt Conversion mit der rechten Maustaste an und wählen Sie im Kontextmenü ACTIVATE PROJECT. Der Projektname wird nun hervorgehoben darstellt. Code::Blocks zeigt so an, dass dies das Programm ist, an dem Sie aktuell arbeiten. Wenn Sie den BUILD-Befehl wählen, erstellt Code::Blocks immer das aktive Projekt. 3. Doppelklicken Sie auf die Datei main.cpp, um sie im Editor zu öffnen. Der Nachteil bei diesem Ansatz besteht darin, dass sie nur wenig über C++ lernen, wenn Sie den Code nicht selbst eingeben. Ihr Programm erstellen Nachdem Sie Ihre C++-Quelldatei Conversion.cpp auf die Festplatte gespeichert haben, können Sie daraus den ausführbaren Maschinencode erstellen. Wählen Sie zu diesem Zweck den Menübefehl BUILD I BUILD oder drücken Sie + . Sofort legt Code::Blocks los und kompiliert Ihr Programm. Falls alles geklappt hat, steht unten im Fenster (siehe Abbildung 1.10) die Zeile: Process terminated with status 0 (0 minutes, 0 seconds) 0 errors, 0 warnings Abbildung 1.10: Code::Blocks erstellt das Programm Conversion sehr schnell. 46 1 ➤ Ihr erstes C++-Programm Code::Blocks erzeugt eine Fehlermeldung, falls es irgendwelche Fehler in Ihrem C++-Programm findet. Und dafür gibt’s so viele Möglichkeiten wie Sand am Meer. Selbst wenn Sie ein einfaches Programm wie Conversion.cpp eingeben, haben Sie vermutlich eine ganze Anzahl an Meldungen erhalten. Um Sie mit dem Ablauf bei Fehlern vertraut zu machen, ändern Sie die Zeile 16 von cin >> celsius; in cin >>> celsius;. Kleine Änderung, große Wirkung. Wählen Sie erneut BUILD I BUILD aus dem Menü, um den Compile- und Build-Prozess zu starten. Sofort zeigt Code::Blocks neben der fehlerhaften Zeile ein rotes Kästchen an. Die Meldung im Fenster BUILD MESSAGES ist eher kryptisch, da steht: C: CPP_Programme Kap01 Conversion main.cpp|16|error: expected primary– expression before '>' token. Um die Meldung loszuwerden, entfernen Sie das überzählige > und übersetzen erneut. Wahrscheinlich kommen Ihnen die Fehlermeldungen von Code::Blocks ziemlich mysteriös vor, aber lassen Sie sich Zeit – Sie programmieren erst seit 30 Minuten. Nach einiger Zeit verstehen Sie Fehlermeldungen von Code::Blocks und des gccCompilers viel besser. Code::Blocks war in diesem Fall in der Lage, direkt die fehlerhafte Zeile anzuzeigen. Leider klappt das nicht immer, manchmal zeigt er den Fehler eine Zeile tiefer oder vorher an, falls Sie also einen Fehler nicht in der gezeigten Zeile sehen, schauen Sie auch mal davor oder dahinter nach. Ihr Programm ausführen Jetzt können wir Ihre neue Kreation ausführen ... das heißt, Ihr Programm laufen lassen. Sie werden die Programmdatei CONVERSION ausführen und einige Eingaben machen, um zu sehen, wie gut es funktioniert. Um das Umrechnungsprogramm mit Code::Blocks unter Windows auszuführen, klicken Sie auf BUILD I BUILD AND RUN oder drücken Sie . Hierdurch wird das Programm neu erstellt, wenn irgendwelche Änderungen vorgenommen wurden, und nach dem Build wird das Programm gestartet. Sofort öffnet sich ein Fenster, und Sie werden aufgefordert, eine Temperatur in Grad Celsius einzugeben. Geben Sie eine übliche Temperatur wie beispielsweise 100 Grad ein. Nachdem Sie auf gedrückt haben, zeigt das Programm die entsprechenden Grade Fahrenheit (212) an: Geben Sie die Temperatur in Grad Celsius entspricht Grad Fahrenheit: 212 Druecken Sie Enter, um fortzufahren ... Die Meldung DRUECKEN SIE ENTER, UM FORTZUFAHREN ... gibt Ihnen Gelegenheit, die Werte in Ruhe zu studieren, bevor das Programm beendet wird. Wenn Sie auf drücken, wird das Fenster geschlossen, und sein Inhalt verschwindet. Glückwunsch! Sie haben gerade Ihr erstes C++Programm eingegeben, erstellt und ausgeführt. 47 C++ für Dummies Beachten Sie, dass Code::Blocks eigentlich nicht darauf ausgelegt ist, Anwendungen mit einer grafischen Benutzeroberfläche zu entwickeln, die in einem Fenster ablaufen, wie beispielsweise Windows-Programme. Theoretisch können Sie mit Code::Blocks eine Windows-Anwendung schreiben, aber es ist nicht einfach. (Mit Visual Studio geht dies sehr viel einfacher.) Windows-Programme zeigen sich dem Anwender in einer sehr stark optisch betonten Form, die auf Bildschirmfenstern basiert. Conversion.exe ist ein 32-Bit-Programm, das unter Windows ausgeführt wird, aber es ist kein »Windows«-Programm im Sinne einer typischen, visuell betonten Windows-Anwendung. Es macht nichts, wenn Sie nicht wissen, was 32-Bit-Programm bedeutet. Wie ich bereits weiter oben erwähnt habe, ist das Schreiben von Windows-Programmen nicht das Thema dieses Buches. Die C++-Programme, die Sie in diesem Buch schreiben, haben eine sogenannte Kommandozeilen- oder Befehlszeilen-Schnittstelle (englisch command line interface), die in einem MS-DOS-Fenster ausgeführt wird. Angehende Windows-Programmierer sollten nicht verzweifeln – sie haben ihr Geld nicht verschwendet. C++ zu lernen, ist eine Voraussetzung dafür, Windows-Programme zu schreiben. Ich bin der Meinung, dass beide Themen separat gemeistert werden sollten, und zwar zuerst C++ und dann Windows. Kommentierte Programme lesen Daten in das Programm eines anderen Programmierers einzugeben, ist damit zu vergleichen, einem anderen Autofahrer beim Autofahren zuzuschauen. Der eigentliche Spaß beginnt erst, wenn Sie sich selbst hinters Steuer setzen. Bei Programmen ist es ähnlich wie bei Autos: Alle Autos verhalten sich bis auf kleinere Unterschiede gleich – wenn wir Autos aus Frankreich mal außen vor lassen. Aber grundsätzlich ist diese Aussage schon richtig. Autos haben im Wesentlichen dieselbe Grundstruktur: Vor Ihnen gibt es ein Steuerrad, unter Ihnen einen Sitz, über Ihnen ein Dach und so weiter. Analog dazu sind auch alle C++-Programme nach einem gemeinsamen Muster aufgebaut. Dieses Muster zeigt sich bereits in Ihrem allerersten Programm. Wir wollen uns das Umwandlungsprogramm noch einmal im Hinblick auf die Elemente anschauen, die allen Programmen gemeinsam sind. Das gemeinsame Gerüst aller C++-Programme Jedes C++-Programm, das Sie beim Durcharbeiten dieses Buchs schreiben, hat dieselbe Grundstruktur: // // // // // Template – stellt eine Schablone zur Verfügung, die als Ausgangspunkt verwendet wird Die folgenden Include–Dateien definieren die Mehrzahl der Funktionen, die von allen Programmen benötigt werden. 48 1 ➤ Ihr erstes C++-Programm #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; int main(int nNumberofArgs, char* pszArgs[]) { // Hier beginnt Ihr C++–Code. // Warten, bis der Benutzer bereit ist, // das Programm zu beenden, damit er die Ergebnisse des // Programms studieren kann. cout<< ''Druecken Sie Enter, um fortzufahren ...'' <<endl; cin.ignore(10, ' n'); cin.get(); return 0; } Wir wollen nicht auf die vielen langweiligen Einzelheiten eingehen. Nur so viel: Die Ausführung beginnt mit dem Code, der unmittelbar nach der öffnenden geschweiften Klammer nach main() beginnt und vor der schließenden geschweiften Klammer von main() endet. Der Code dieser Schablone (Template) befindet sich nach der Installation der Beispieldateien im Hauptordner C: CPP_Programme_Buch in einer Datei namens Template.cpp. Sourcecode durch Kommentare erläutern Die ersten paar Zeilen in Conversion.cpp scheinen aus Fließtext ohne eine spezielle Form zu bestehen. Diese ersten sechs Zeilen werden als Kommentare bezeichnet. Mit Kommentaren kann der Programmierer erklären, was er mit einem bestimmten Codeabschnitt bezweckt hat. Der Compiler ignoriert Kommentare. Programmierer (das heißt gute Programmierer) achten auf sie. Ein C++-Kommentar beginnt mit einem doppelten Schrägstrich (//) und endet mit einem Zeilenumbruch. Kommentare dürfen beliebige Zeichen enthalten. Ein Kommentar kann so lang sein, wie Sie wollen, aber üblicherweise wird die Länge auf 80 Zeichen beschränkt. Früher waren Bildschirme standardmäßig 80 Zeichen breit. Einige Drucker drucken standardmäßig immer noch Zeilen, die 80 Zeichen lang sind. Auch heutzutage ist es durchaus noch sinnvoll, keine Zeile länger als 80 Zeichen zu machen (sie sind leichter zu lesen, strengen die Augen weniger an und so weiter). Ein Zeilenumbruch wurde früher im Zeitalter der Schreibmaschine auch als Wagenrücklauf bezeichnet; damals wurde die Eingabe von Zeichen in eine Maschine auch als Eintippen statt als Tastatureingabe bezeichnet. Ein Zeilenumbruch ist das Zeichen, das eine Befehlszeile beendet. 49 C++ für Dummies In C++ gibt es auch eine zweite Form von Kommentaren, die durch die Zeichen /* eingeleitet und die Zeichen */ beendet werden; alles, was zwischen diesen Begrenzern steht, wird ignoriert. Jedoch wird diese Form von Kommentaren in C++ normalerweise nicht mehr verwendet. Es mag seltsam erscheinen, dass es in C++ (oder in anderen Programmiersprachen) einen Befehl gibt, der von dem Computer ignoriert wird. Jedoch gibt es in allen Computersprachen eine Art von Kommentar. Es ist wichtig, dass der Programmierer erklären kann, was er beabsichtigte, als er den Code schrieb; denn möglicherweise sind seine Absichten für einen Kollegen, der das Programm aufgreift und versucht, es zu verstehen, nicht so leicht durchschaubar. Tatsächlich könnte auch der Programmierer selbst vergessen haben, was er mit dem Code bewirken wollte, wenn er sich sein Programm Monate, nachdem er den Code geschrieben hat, noch einmal anschaut und keinen Hinweis hinterlassen hat. Programme bestehen aus C++-Anweisungen Alle C++-Programme bestehen aus sogenannten C++-Anweisungen. In diesem Abschnitt erhalten Sie einen Überblick über die Anweisungen, aus denen das Programmgerüst besteht, das von dem Programm Conversion.cpp verwendet wird. Eine Anweisung ist ein einzelner Befehlssatz. Alle Anweisungen außer Kommentaren enden mit einem Semikolon. (Es gibt einen Grund dafür, warum Kommentare nicht mit einem Semikolon abgeschlossen werden, aber er liegt im Dunkeln. Meiner Meinung nach sollten auch Kommentare aus Gründen der Konsistenz mit einem Semikolon abgeschlossen werden. Warum mich niemand gefragt hat, ist mir schleierhaft.) Die Ausführung eines Programms beginnt mit dem ersten C++-Befehl nach der öffnenden geschweiften Klammer und wird Befehl für Befehl bis zum Ende des Listings fortgesetzt. Wenn Sie das Programm genauer ansehen, werden Sie feststellen, dass überall Leerzeichen, Tabulatorzeichen und Zeilenumbrüche vorkommen. Tatsächlich habe ich in diesem Programm nach jedem Befehl einen Zeilenumbruch eingefügt. Diese Zeichen werden zusammenfassend als Whitespace (»weißer Raum«) bezeichnet, weil sie auf dem Bildschirm nicht angezeigt werden. Sie können überall Whitespaces in ein Programm einfügen, um seine Lesbarkeit zu verbessern – außer in der Mitte eines Wortes: Sehen Sie, wa s ich meine? Im Gegensatz zu Whitespaces spielt die Groß- und Kleinschreibung in C++ eine Rolle. Tatsächlich nimmt C++ die Schreibweise sehr genau. Die Variablen fullspeed und FullSpeed haben nichts miteinander zu tun. Während das Schlüsselwort int in C++ genau definiert ist, kann C++ mit INT nichts anfangen. 50 1 ➤ Ihr erstes C++-Programm Deklarationen schreiben Die Zeile int celsius; ist eine Deklarationsanweisung. Eine Deklaration ist ein Befehl, der eine Variable definiert. Eine Variable ist ein »Behälter« für einen Wert eines bestimmten Typs. Eine Variable enthält einen Wert wie beispielsweise eine Zahl oder ein Zeichen. Der Ausdruck Variable ist aus algebraischen Formeln der folgenden Art abgeleitet: x = 10 y = 3 * x Im zweiten Ausdruck wird y gleich 3 mal x gesetzt; aber was ist x? Die Variable x hat die Funktion eines Platzhalters für einen Wert. In diesem Fall hat x den Wert 10, aber wir hätten den Wert von x auch auf 20 oder 30 oder –1 setzen können. Die zweite Formel ist unabhängig vom Wert von x gültig. In der Algebra dürfen Sie mit einer Anweisung wie beispielsweise x = 10 anfangen. In C++ muss der Programmierer zuerst die Variable x definieren, bevor er sie benutzen kann. In C++ hat eine Variable einen Typ und einen Namen. Die Variable, die in Zeile 11 definiert wird, heißt celsius. Die Deklaration legt fest, dass sie eine Ganzzahl (englisch integer) aufnehmen kann. (Warum die Erfinder der Sprache nicht einfach integer statt int gewählt haben, ist mir unverständlich. Es gehört einfach zu den Dingen, mit denen zu leben Sie lernen müssen.) Der Name einer Variablen hat für C++ keine besondere Bedeutung. Eine Variable muss mit einem der Buchstaben von A bis Z oder a bis z beginnen. Alle folgenden Zeichen müssen aus einem Buchstaben, einer Ziffer (0 bis 9) oder einem Unterstrich (_) bestehen. Variablennamen können so lang sein, wie Sie wollen. Per Konvention beginnen Variablennamen mit einem Kleinbuchstaben. Jedes neue Wort innerhalb einer Variablen beginnt mit einem Großbuchstaben – beispielsweise meineVariable. Sie sollten versuchen, kurze, aber aussagekräftige Variablennamen zu formulieren. Sie sollten Namen wie x vermeiden, weil x keine spezielle Bedeutung hat. Ein Variablenname wie laengeDerLinie ist viel aussagekräftiger. Ausgaben erzeugen Die Zeilen, die mit cout und cin beginnen, werden als Input/Output-Befehle (Eingabe-/Ausgabebefehle, oft abgekürzt als I/O-Befehle) bezeichnet. (Programmierer lieben Abkürzungen.) Der erste I/O-Befehl enthält die Anweisung, den Satz Geben Sie die Temperatur in Grad Celsius ein: auf cout (ausgesprochen »ßi-aut«) auszugeben. cout ist der Name des Standardausgabegerätes von C++. In diesem Fall ist Ihr Monitor das Standardausgabegerät von C++. 51 C++ für Dummies Die nächste Zeile bewirkt genau das Gegenteil. Sie besagt: Lies einen Wert von dem C++Eingabegerät ein und speichere ihn in der ganzzahligen Variablen celsius. Das C++-Eingabegerät ist normalerweise die Tastatur. Hier handelt es sich um das C++-Gegenstück zu der algebraischen Formel x = 10, die ich gerade erwähnt habe. Im Rest des Programms hat celsius den Wert, den der Benutzer hier eingibt. Ausdrücke berechnen Bis auf die einfachsten Programme führen alle Programme die eine oder andere Berechnung durch. In C++ ist ein Ausdruck eine Anweisung, die eine Berechnung durchführt. Anders ausgedrückt: Ein Ausdruck ist eine Anweisung, die einen Wert hat. Ein Operator ist ein Befehl, der einen Wert generiert. Beispielsweise gibt es in unserem Umrechnungsprogramm zwei Zeilen, in denen der Umrechnungsfaktor mithilfe der Variablen factor deklariert und dann berechnet wird. Dieser spezielle Befehl berechnet die Differenz aus 212 und 32; der Operator ist das Minuszeichen (–), und der Ausdruck ist 212–32. Das Ergebnis eines Ausdrucks speichern Die Umgangssprache kann sehr vieldeutig sein. Dies gilt auch für den Ausdruck ist gleich. Das Wort gleich kann bedeuten, dass zwei Dinge denselben Wert haben; beispielsweise waren zu DM-Zeiten 10 Pfennige gleich einem Groschen. Das Wort gleich kann aber auch eine Zuweisung bedeuten, wie beispielsweise in der mathematischen Formel y gleich 3 mal x. Um Mehrdeutigkeiten zu vermeiden, bezeichnen C++-Programmierer = als den Zuweisungsoperator, der besagt: »Speichere das Ergebnis des Ausdrucks auf der rechten Seite des Gleichheitszeichens in der Variablen auf der linken Seite.« Programmierer sagen: »Der Variablen factor wird der Wert von 212 minus 32 zugewiesen.« Sagen Sie nie: »Die Variable factor ist gleich 212 minus 32.« Nachlässige Programmierer verwenden manchmal diese Ausdrucksweise; aber Sie und ich wissen es besser. Den Rest des Programms untersuchen Der zweite Ausdruck in unserem Programm Conversion ist etwas komplizierter. Er verwendet dieselben Operatoren, die Sie auch aus der Mathematik kennen: * für die Multiplikation, / für die Division und + für die Addition. In diesem Fall erfolgt die Berechnung jedoch mit Variablen und nicht mit einfachen Konstanten. Der Wert, der in der Variablen factor enthalten ist (die unmittelbar zuvor als Summe aus 212 minus 32 berechnet wurde), wird mit dem Wert multipliziert, der in der Variablen celsius enthalten ist (und der über die Tastatur eingegeben wurde). Das Ergebnis wird durch 100 geteilt; dann wird 32 addiert. Das Ergebnis des gesamten Ausdrucks wird der ganzzahligen Variablen fahrenheit zugewiesen. 52 1 ➤ Ihr erstes C++-Programm Die nächsten beiden Befehle geben den String entspricht Grad Fahrenheit: sowie den Wert der Variablen fahrenheit auf dem Bildschirm aus – und zwar so schnell, dass der Benutzer kaum mitkriegt, was passiert. Die drei letzten Anweisungen fordern den Benutzer auf, Enter zu drücken; daraufhin wird gewartet, bis der Benutzer dies macht. Der Grund ist, dass das Programm auf manchen Systemen die Ergebnisse so schnell anzeigt und dann das Fenster schließt, dass Sie überhaupt nicht mitbekommen, dass irgendwas passiert ist. Auf vielen Systemen können Sie diese drei Zeilen auf weglassen – Code::Blocks lässt das Fenster doch so lange offen, bis Sie gedrückt haben – aber diese Zeilen verursachen auch keine Probleme. Die letzte Anweisung, return 0, gibt die Kontrolle wieder an das Betriebssystem zurück.