C++ - Markt und Technik

mut.de

C++ - Markt und Technik

C++


C++

Programmieren mit

einfachen Beispielen

DIRK LOUIS


Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der

Deutschen Nationalbibliografie; detaillierte bibliografische Daten

sind im Internet über http://dnb.d-nb.de abrufbar.

Die Informationen in diesem Produkt werden ohne Rücksicht auf einen

eventuellen Patentschutz veröffentlicht.

Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt.

Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter

Sorgfalt vorgegangen.

Trotzdem können Fehler nicht vollständig aus geschlossen werden.

Verlag, Herausgeber und Autoren können für fehlerhafte Angaben

und deren Folgen weder eine juristische Verantwortung noch

irgendeine Haftung übernehmen.

Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und

Herausgeber dankbar.

Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der

Speicherung in elektronischen Medien.

Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten

ist nicht zulässig.

Fast alle Hardware- und Softwarebezeichnungen und weitere Stichworte und sonstige

Angaben, die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt.

Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht,

wird das ® Symbol in diesem Buch nicht verwendet.

10 9 8 7 6 5 4 3 2 1

13 12

ISBN 978-3-8272-4770-4

© 2012 by Markt+Technik Verlag,

ein Imprint der Pearson Deutschland GmbH,

Martin-Kollar-Straße 10–12, D-81829 München/Germany

Alle Rechte vorbehalten

Covergestaltung: Thomas Arlt, tarlt@adesso21.net

Titelfoto: plainpicture

Lektorat: Brigitte Bauer-Schiewek, bbauer@pearson.de

Korrektorat und Fachlektorat: Petra Alm

Herstellung: Monika Weiher, mweiher@pearson.de

Satz: Ulrich Borstelmann, Dortmund (www.borstelmann.de)

Druck und Verarbeitung: Drukarnia Dimograf, Bielsko-Biala

Printed in Poland


Inhaltsverzeichnis

Liebe Leserin, lieber Leser ................................................................................................. 11

Kapitel 1: Schnelleinstieg 13

Kapitel 2: Was sind Programme? 17

Was ist ein Programm?...................................................................................................... 18

Sprechen Sie Computer?............................................................................................ 18

Von der Idee zum Programm....................................................................................... 19

Von Windows, Fenstern und Konsolen........................................................................22

C und C++..........................................................................................................................25

Programmieren macht Spaß..............................................................................................26

Rätselhaftes C++................................................................................................................27

Kapitel 3: Wie erstellt man eigene Programme? 29

Welcher Compiler darf es sein?..........................................................................................30

Programmerstellung mit Visual C++ (Windows).................................................................30

Installation................................................................................................................. 31

Visual C++ starten.......................................................................................................32

Ein neues Projekt anlegen..........................................................................................34

Den Quelltext aufsetzen.............................................................................................39

Speichern und erstellen..............................................................................................42

Das Programm testen.................................................................................................44

Das Programm ausführen...........................................................................................45

Visual C++ beenden....................................................................................................47

Programmerstellung mit dem g++-GNU-Compiler (Linux)..................................................48

Installation.................................................................................................................48

Programme erstellen und kompilieren........................................................................48

Noch einmal: Ausführen von Konsolenprogrammen..........................................................52

Rätselhaftes C++................................................................................................................53

Kapitel 4: Unser erstes Programm 55

Der Programmcode............................................................................................................56

Headerdateien und Laufzeitbibliothek...............................................................................56

Die C++-Laufzeitbibliothek..........................................................................................57

Alle Namen müssen deklariert werden.......................................................................57

Die Headerdateien zur Laufzeitbibliothek...................................................................58

5


Inhaltsverzeichnis

Die main()-Funktion aufsetzen...........................................................................................60

Ausgabe............................................................................................................................ 61

Kommentare......................................................................................................................64

Sinnvolles Kommentieren...........................................................................................65

Stil.....................................................................................................................................65

Programmausführung........................................................................................................66

Rätselhaftes C++................................................................................................................67

Kapitel 5: Zahlen und Texte in C++-Programmen 69

Variablen und Konstanten..................................................................................................70

Konstanten.................................................................................................................70

Variablen.................................................................................................................... 71

Variablen deklarieren.........................................................................................................72

Der Datentyp – Variablen für jeden Zweck..........................................................................74

Die Bedeutung des Datentyps....................................................................................74

Die Datentypen...........................................................................................................77

Werte in Variablen speichern.............................................................................................78

Variablen bei der Definition initialisieren....................................................................80

Werte von Variablen abfragen............................................................................................80

Gleichzeitige Abfrage und Zuweisung......................................................................... 81

Rätselhaftes C++................................................................................................................83

Kapitel 6: Mit Zahlen und Texten arbeiten 85

Die Rechenoperationen.....................................................................................................86

Mathematische Formeln ausrechnen.................................................................................87

Klammerung von Ausdrücken.....................................................................................89

Die mathematischen Funktionen....................................................................................... 91

Arbeiten mit C++-Referenzen......................................................................................92

Typenstrenge und Typumwandlung............................................................................98

Verwendung der trigonometrischen Funktionen....................................................... 101

Weitere Zahlenoperatoren .............................................................................................. 104

Kombinierte Zuweisungen........................................................................................ 104

Inkrement und Dekrement........................................................................................ 105

Mit Strings arbeiten......................................................................................................... 106

String-Variablen definieren und zuweisen................................................................ 106

Strings aneinanderhängen....................................................................................... 108

Sonderzeichen in Strings...........................................................................................111

Strings manipulieren................................................................................................ 112

Vertiefung: Speicherverwaltung für Strings.............................................................. 120

Rätselhaftes C++.............................................................................................................. 121

6


Inhaltsverzeichnis

Kapitel 7: Daten einlesen und ausgeben 123

Daten einlesen................................................................................................................. 124

Mehrere Daten gleichzeitig einlesen......................................................................... 127

Formatierte Ausgabe mit cout.......................................................................................... 127

Genauigkeit von Gleitkommazahlen......................................................................... 128

Feldbreite ................................................................................................................ 128

Anpassung des Fahrenheit-Programms.................................................................... 129

Formatierte Ausgabe mit printf()...................................................................................... 133

Formatierung der Platzhalter ................................................................................... 138

Zahlen in Strings und Strings in Zahlen verwandeln......................................................... 140

Zahlen in Strings umwandeln................................................................................... 140

Strings in Zahlen umwandeln................................................................................... 142

Rätselhaftes C++.............................................................................................................. 143

Kapitel 8: Vergleichen und verzweigen 145

Zahlen und Strings vergleichen........................................................................................ 146

Ergebniswerte von Vergleichen................................................................................. 146

Operatoren für Vergleiche......................................................................................... 147

Strings vergleichen................................................................................................... 147

Ja oder nein? – Die if-Verzweigung................................................................................... 150

Allgemeine Syntax.................................................................................................... 150

Bedingte Ausführung von Anweisungen................................................................... 151

Die else-Alternative.................................................................................................. 154

if-else-Verzweigungen verschachteln............................................................................... 155

Die switch-Verzweigung................................................................................................... 156

Allgemeine Syntax.................................................................................................... 156

Wie statte ich meine Anwendungen mit einem Menü aus?.............................................. 157

Rätselhaftes C++.............................................................................................................. 163

Kapitel 9: Anweisungen mehrfach ausführen lassen 165

Wozu braucht man Schleifen........................................................................................... 166

Die for-Schleife................................................................................................................ 167

Allgemeine Syntax.................................................................................................... 167

Wie werden Schleifen kontrolliert? .......................................................................... 167

Ausführung einer Schleife........................................................................................ 168

Mit Schleifen Zahlenfolgen berechnen...................................................................... 170

Varianten und Fallstricke.......................................................................................... 173

Die while-Schleife............................................................................................................ 174

Vom Anwender gesteuerte Schleifen ....................................................................... 174

Allgemeine Syntax.................................................................................................... 177

7


Inhaltsverzeichnis

Schleifen vorzeitig abbrechen.......................................................................................... 177

Schleifendurchgang abbrechen................................................................................ 177

Schleife abbrechen................................................................................................... 181

Rätselhaftes C++.............................................................................................................. 185

Kapitel 10: Funktionen – Teilprobleme auslagern 187

Funktionen definieren und aufrufen................................................................................. 188

Funktionen definieren............................................................................................... 188

Funktionen aufrufen................................................................................................. 189

Vorteile von Funktionen............................................................................................ 192

Parameter an Funktionen übergeben............................................................................... 194

Parameter und Argumente........................................................................................ 194

Mehrere Parameter................................................................................................... 195

Werte aus Funktionen zurückliefern................................................................................ 196

Mehrere return-Anweisungen................................................................................... 197

Code in Funktionen auslagern......................................................................................... 198

Globale und lokale Variablen........................................................................................... 201

Allgemeine Syntax...........................................................................................................202

Rätselhaftes C++..............................................................................................................203

Kapitel 11: Arrays und Container –

1000 Daten gleichzeitig bearbeiten 205

Arrays deklarieren...........................................................................................................206

Auf Array-Elemente zugreifen..........................................................................................207

Arrays in Schleifen durchlaufen.......................................................................................209

Die for-Schleife für Arrays und Container und der neue C++-Standard...................... 212

Der vector-Container........................................................................................................ 214

Einen Container anlegen........................................................................................... 215

Dynamisches Wachsen............................................................................................. 218

Durchlaufen in Schleifen........................................................................................... 221

Bearbeiten mit Algorithmen......................................................................................224

Rätselhaftes C++..............................................................................................................225

Kapitel 12: Strukturen – Die ersten kombinierten Datentypen 227

Strukturen deklarieren.....................................................................................................228

Komplexe Daten.......................................................................................................228

Strukturvariablen erzeugen.............................................................................................230

Auf Strukturfelder zugreifen............................................................................................ 231

Programm zur Vektorrechnung........................................................................................234

Rätselhaftes C++..............................................................................................................244

8


Inhaltsverzeichnis

Kapitel 13: Die objektorientierte Revolution 247

Objektorientiert denken..................................................................................................248

Die Klasse als Datentyp und als Grundlage der objektorientierten Programmierung.......249

Planung und Umsetzung eines Programms zur Vektorrechnung...............................250

Rätselhaftes C++..............................................................................................................255

Kapitel 14: Klassen – objektorientiert programmieren 257

Einführung.......................................................................................................................258

Grundkurs Klassendefinition...........................................................................................259

Das Klassengerüst....................................................................................................259

Die Eigenschaften ....................................................................................................260

Die Methoden ..........................................................................................................262

Der Konstruktor........................................................................................................266

Die Zugriffsspezifizierer............................................................................................269

Zusammenfassung...................................................................................................272

Aufbaukurs Klassendefinition..........................................................................................273

Methoden außerhalb der Klasse definieren..............................................................273

Private Elemente und öffentliche Schnittstelle.........................................................277

Private Datenelemente – Öffentliche Methoden.......................................................278

Mehrere Konstruktoren vorsehen.............................................................................284

Das Vektorprogramm.......................................................................................................286

Rätselhaftes C++..............................................................................................................286

Kapitel 15: Programmieren mit Dateien 289

Streams...........................................................................................................................290

In Dateien schreiben........................................................................................................ 291

Aus Dateien lesen............................................................................................................299

Das Hauptstädte-Quiz.....................................................................................................304

Das Konzept.............................................................................................................304

Die Implementierung................................................................................................305

Rätselhafter C++-Leser..................................................................................................... 317

Kapitel 16: Abschluss und Ausblick 319

#include, #define und const............................................................................................320

Die Headerdateien....................................................................................................320

Verwendung von #include........................................................................................323

#define und const.....................................................................................................324

Programmcode auf mehrere Quelldateien verteilen.........................................................327

Quelltext verteilen....................................................................................................327

Programme aus mehreren Dateien kompilieren und erstellen..................................333

9


Inhaltsverzeichnis

Headerdateien zu Quelldateien anlegen ..................................................................335

Mehrfacheinbindung von Headerdateien verhindern ...............................................340

Programme debuggen.....................................................................................................343

Grundlagen...............................................................................................................343

Der Visual C++-Debugger..........................................................................................346

Der gdb-Debugger....................................................................................................353

Programme optimieren....................................................................................................358

Ausblick...........................................................................................................................360

C++ für Fortgeschrittene...........................................................................................360

Window-Programmierung mit C++............................................................................ 361

Rätselhaftes C++..............................................................................................................363

Anhang 364

Der ASCII-Zeichensatz......................................................................................................364

FAQs und typische Fehler.................................................................................................365

FAQs.........................................................................................................................365

Typische Anfängerfehler...........................................................................................367

Lexikon............................................................................................................................369

Ausführung der Beispielprogramme................................................................................377

Stichwortverzeichnis.......................................................................................................379

10


Copyright

Daten, Texte, Design und Grafiken dieses eBooks, sowie die eventuell

angebotenen eBook-Zusatzdaten sind urheberrechtlich geschützt. Dieses eBook

stellen wir lediglich als persönliche Einzelplatz-Lizenz zur Verfügung!

Jede andere Verwendung dieses eBooks oder zugehöriger Materialien und

Informationen, einschließlich

· der Reproduktion,

· der Weitergabe,

· des Weitervertriebs,

· der Platzierung im Internet, in Intranets, in Extranets,

· der Veränderung,

· des Weiterverkaufs und

· der Veröffentlichung

bedarf der schriftlichen Genehmigung des Verlags. Insbesondere ist die

Entfernung oder Änderung des vom Verlag vergebenen Passwortschutzes

ausdrücklich untersagt!

Bei Fragen zu diesem Thema wenden Sie sich bitte an: info@pearson.de

Zusatzdaten

Möglicherweise liegt dem gedruckten Buch eine CD-ROM mit Zusatzdaten bei.

Die Zurverfügungstellung dieser Daten auf unseren Websites ist eine freiwillige

Leistung des Verlags. Der Rechtsweg ist ausgeschlossen.

Hinweis

Dieses und viele weitere eBooks können Sie rund um die Uhr und legal auf

unserer Website herunterladen:

http://ebooks.pearson.de

Weitere Magazine dieses Users
Ähnliche Magazine