Grundstruktur eines C-Programms // Kommentare werden durch zwei Schrägstriche (Slash) eingeleitet /* Oder durch Slash Stern … Stern Slash eingeschlossen */ #include <iostream> // Präprozessor-Anweisungen beginnen mit # // Einbinden der Programmbibliothek iostream, // die den Befehl “cout” enthält #include <conio.h> // Enthält die Funktion “getch()” using namespace std; // Benutzung der Standard Template Library int main () // Jedes Programm besitzt eine Funktion main { // Blöcke werden durch geschweifte Klammern eingerahmt cout << “Hello World”; // Ausgabe des Textes “Hello World” // Befehle werden mit einem Semikolon abgeschlossen getch (); // Warten auf Tastendruck, bevor Programm beendet wird return 0; // Rückgabewert des Hauptprogramms } HelloWorld Erstellen einer Konsolen-Anwendung in der integrierten Entwicklungs-Umgebung (IDE) • Programme, deren Ein- und Ausgabe über eine DOSBox laufen: → Datei → Neu → Projekt → Visual C++-Projekte → Win32-Konsolenprojekt • Name: Projektname (z.B. HelloWorld) • Speicherort: C:\Projekte • Überblick • Anwendungseinstellungen Speichern eines Projektes → Datei → Alle Speichern: Speichert alle Dateien, die zum Projekt gehören. → Datei → Speichern: Speichert die gerade im Editor angezeigte Datei (.cpp, .h) → Datei → Speichern unter: Speichert die gerade im Editor angezeigte Datei unter anderem Namen Funktionen des Compilers und des Linkers • • • • • Der Compiler erzeugt aus dem eingegebenen Quelltext den Objectcode (Erweiterung .obj) → Erstellen → Kompilieren Syntaxfehler im Quelltext werden vom Compiler erkannt und mit einer Fehlermeldung quittiert (Syntax Error) Zusätzlich kann der Compiler so eingestellt werden, dass bei bestimmten Konstruktionen (z.B. Wertzuweisung an eine Variable, die nicht verwendet wird) eine Warnung ausgegeben wird (Warnig) Der Linker setzt die Codefragmente zu einer Ausführbaren Datei (.exe) zusammen → Erstellen → Projekt erstellen: Nur die geänderten Dateien werden neu compiliert → Erstellen → neu erstellen: Alle Dateien werden neu compiliert Die ausführbare Datei kann direkt aus der Entwicklungsumgebung gestartet werden → Debuggen → Starten Öffnen eines Projektes → Datei → Projektmappe öffnen: Öffnet ein Projekt → Datei → Öffnen: Öffnet Projektmappen oder einzelne Dateien Eine Übersicht über die zum Projekt gehörenden Dateien erhält man mit dem Projektmappen-Explorer (rechts oben) Die Hilfs-Funktionen → Hilfe → Inhalt: Thematisch sortierte Übersicht Index: Suche nach Schlüsselwörtern Suchen: Nach allgemeinen Begriffen suchen Informativ aus dem Inhalt sind z.B.: → Visual Studio .NET → Visual C++ → Referenz → C/C++ Languages → C++ Language Reference → Visual Studio .NET → Visual C++ → Erstellen und verwalten von Projekten Hilfe zu einem Befehl im Sourcecode: Cursor auf Befehl + F1 Hilfe zu einer Fehlermeldung: Fehlermeldung anklicken + F1 Variablen in C/C++ Variablen müssen im Programm durch Angabe des Datentyps und des Namens deklariert werden. Beispiele: int Zahl1; int j,k; float einfach; double x,y; char ch; // Ganzzahlige Variable (Integer) mit Name Zahl1 // Zwei ganzzahlige Variablen mit den Namen j und k // Fließkommazahl einfach // Fließkommazahlen x und y mit doppelter Genauigkeit // Buchstabe ch Deklaration Zulässige Variablennamen – Variablennamen bestehen aus Buchstaben (a..z, A..Z, _) und Ziffern (0..9). Es wird zwischen Groß- und Kleinschreibung unterschieden – Der Name muss mit einem Buchstaben beginnen – Reservierte Schlüsselwörter (Anweisungen) dürfen nicht als Variablenname verwendet werden Variablen in C/ C++ Werte werden einer Variablen mit dem = Operator zugewiesen. Beispiele: Zahl1 = 30; j = Zahl1; einfach = 2.7; x = 1.0; y = 0.284e-12; ch = ‘Y’; Deklaration Variablen können direkt bei der Deklaration ein Wert zugewiesen werden. Durch das Schlüsselwort const werden Konstanten deklariert. Konstanten müssen direkt bei der Deklaration ein Wert zugewiesen werden. double Zahl2 = 1.2; const double Pi = 3.1415927; Deklaration Ein- und Ausgabe von Variablen #include <iostream> using namespace std; int main () { double y; // Einlesen einer Fließkommazahl über die Tastatur cout << "Bitte eine reelle Zahl eingeben " << endl; cin >> y; // Ausgabe von y auf den Bildschirm cout << "Sie haben " << y << " eingegeben." << endl; char ch; // Einlesen eines Buchstaben über die Tastatur cout << "Bitte einen Buchstaben eingeben " << endl; cin >> ch; // Ausgabe von y auf den Bildschirm cout << "Sie haben " << ch << " eingegeben." << endl; } EinAusgabe Rechnen in C++ Operatoren +, -, *, / für die Grundrechenarten. Beispiel: int a, b, c; double x, y, z; x = 40 / 3.0; y = 40 / 3; z = x * y; // Reelle Division x = 13.3333 // Ganzzahlige Division y = 13.0 // Multiplikation a = 50 * 3; b = 40 / 3; c = 40 % 3; // Multiplikation // Ganzzahlige Division // 40 Modulo 3 = 1 Rechnen Weitere Operatoren += Zuweisung mit Addition -= Zuweisung mit Subtraktion entsprechend: *=, /=, %= a += b; entspricht a = a + b; a -= b; entspricht a = a – b; ++ -- c ++; c--; Inkrement Dekrement entspricht c = c + 1; entspricht c = c -1; Mathematische Funktionen #include <cmath> #include <iostream> #define Pi 3.1415927 using namespace std; int main () { float x; x = cos (Pi); cout << x << endl; cout << log (1.0) << endl; … } // Cosinusfunktion // Natürlicher Logarithmus Mathematik Rechnen in C++ Weitere mathematische Funktionen sind in <cmath> definiert: Trigonometrische Funktionen (Bogenmaß) sin(x) Sinus asin(x) cos(x) Cosinus acos(x) tan(x) Tangens atan(x) log(x) log10(x) Arcussinus Arcuscosinus Arcustangens Natürlicher Logarithmus (Basis 2,718281828…) Logarithmus zur Basis 10 sqrt(x) Quadratwurzel exp(x) Exponentialfunktion pow(x,y) abs(x) Ganzzahliger Absolutwert Potenzieren fabs(x) Reeller Absolutwert Arrays Indexvariablen können in Feldern (Arrays) gespeichert werden. Beispiel: int a [10]; a [0] = 10; a[1] = 20; a[9] = 7+3; int i; i=2; a[i] = i * 4; a[i+1] = 6; // Deklaration eines Arrays von 10 ganzen Zahlen // Erstes Element erhält den Wert 10 // Zweites Element erhält den Wert 20 // Letztes Element erhält den Wert 10 // Ganze Zahl als Index // Element i erhält den Wert i * 4 // Element i+1 erhält den Wert 6 Wert 10 20 8 6 Index 0 1 2 3 4 5 6 7 8 9 Array 10 Arrays können auch mehrdimensional sein. Beispiel: double Matrix [10][20]; int i = 2; int j = 7; Matrix [i][j] = i*j; // Deklaration einer 10 x 20 Matrix Array Übersicht Datentypen in C++ Grunlegende Datentypen bool : true oder false char : Buchstabe (8 Bit) int : Ganze Zahl (32 Bit) float : Fließkommazahl (32 Bit) double : Fließkommazahl, doppelte Genauigkeit (64 Bit) long double : Fließkommazahl (80 Bit) void : Nichts enum : Aufzählung Modifizierer für ganzzahlige Datentypen: short long signed unsigned Datentypen der Standard Template Library (STL) string : Zeichenkette (auch definiert in <string.h>) vector : Vektor/Array complex : Komplexe Zahl list : Liste … Programmablauf Darstellung eines linearen Programmablaufs im Flussdiagramm: Anweisung 1 Anweisung 2 Anweisung 3 Fallunterscheidungen Syntax: if (Bedingung) {Block} [else {Block}] Nein a >= 0 Ja Ausgabe: “Positive Zahl” Ausgabe: “Negative Zahl” int a; cin >> a; if (a >= 0) { cout << “Positive Zahl”; } else { cout << “Negative Zahl”; } IfThenElse Bedingungen Vergleichsoperatoren: == gleich != < kleiner <= > größer >= Logische Operatoren: && logisches und || ! logisches nicht ungleich kleiner gleich größer gleich logisches oder Beispiel: if (((a==b) && (b!=c)) || (d != 0)) Anweisung; Ausgeschrieben: (((a gleich b) und (b ungleich c)) oder (d ungleich 0)) For-Schleife Syntax: for (Initialisierungs-Anweisung; Bedingung; Inkrement-Ausdruck) { Block } Initialisierungs-Anweisung Nein Bedingung Ja Block Inkrement-Ausdruck #include <iostream> using namespace std; int main () { int i; for (i = 0; i < 10; i++) { cout << i << endl; } … } For-Schleife Beispiel: Eingabe von 10 Gleitkommazahlen über die Tastatur und Ausgabe auf dem Bildschirm int main () { double x[10]; int i; for (i = 0; i < 10; i++) { cout << i << ". Zahl eingeben "; cin >> x[i]; } for (i=0; i<10; i++) cout << x[i] << endl; … } For-Schleife Beispiel: Berechnung der Summe der Zahlen in einem Array int main () { double x[5] = {12.4, 1.9, -6.8 , 14.23, 0.123}; int i; double summe = 0; for (i = 0; i < 5; i++) { summe += x[i] } cout << summe; … } The End Dateipfade Speichern des Projektes auf der lokalen Festplatte (Programmentwicklung): C:\C++\ Speichern einer Sicherheitskopie des Sourcecodes auf Diskette: A:\Projektname\Programmname.cpp A:\Projektname\Programmname.h Speichern des Sourcecodes auf dem Server: Laufwerkbuchstabe F:\