Title | Befehle in C++ - Code- zusammmenfassung |
---|---|
Course | Informatik I |
Institution | Eidgenössische Technische Hochschule Zürich |
Pages | 51 |
File Size | 1.3 MB |
File Type | |
Total Downloads | 46 |
Total Views | 169 |
Code- zusammmenfassung...
Programmier-Befehle - Woche 1
Grundgeru ¨st Grundger¨ ust
Grundgerust ur einfache Programme ¨ f¨
Unser Grundger¨ust besteht aus folgenden Komponenten: • Kommentare • Verf¨ ugbarmachung zus¨atzlicher Funktionalit¨at (via #include ) • main-Funktion Beachte: Jedes ausf¨uhrbare Programm braucht die main-Funktion. Beachte: Zus¨atzliche Funktionalit¨ at, wie beispielsweise Eingabe und Ausgabe, ist nicht in der “Grundfunktionalit¨at” von C++ enthalten. Der Programmierer muss also mitteilen, wo diese zus¨atzliche “Funktionalit¨at” definiert ist. Mittels #include kann er dem Compiler sagen, in welcher Befehlssammlung (genannt: Library) diese “Funktionalit¨at” definiert ist. Ein- und Ausgabe sind beispielsweise in iostream definiert. Die Zeile //#include "tests.h" // ... wird f¨ ur die Serien auf Codeboard verwendet, um dort die Programme zu testen ¨ und an den Ubungsleiter abzugeben. (Hierzu werden die // am Zeilenanfang entfernt.) // Informatik - Serie 13 - Aufgabe 4e // Programm: my program.cpp // Autor: X. M. Mueller (Gruppe F) //#include "tests.h" // ... #include int main () { // Your code here... return 0; }
Datentypen int
ur ganze Zahlen Datentyp f¨
int a = 3; int b = a + 4;
Seite 1 von 3
Programmier-Befehle - Woche 1
Operatoren *
Multiplikation von zwei R-Werten.
Pr¨azedenz: 14 und Assoziativit¨at: links int a = -3 * 4; int b = 2 * a; // Note: use l-value as r-value
=
Zuweisungsoperator. Weist einem L-Wert einen neuen Wert zu.
Pr¨azedenz: 4 und Assoziativit¨at: rechts int a; a = 4; a = 3;
// value 4 // value 3
>>
(siehe: std::cin unter ”Input/Output”)
Pr¨azedenz: 12 und Assoziativit¨at: links
> ...
Eingabe via Terminal (z.B. Tastatureingabe)
Erfordert: #include int a; std::cin >> a; // stores the user input into a
std::cout h; std::cout > b; // if a < b then output "Ja"; otherwise output "Nein" if (a < b) { std::cout a >> b; assert(b != 0); // prevent division by 0 std::cout n; unsigned int sum = 0; for (unsigned int i = 1; i c; // double user input
Seite 1 von 5
Programmier-Befehle - Woche 4
Schleifen while (...) {...}
while-Schleife
// Compute number of binary digits for input > 0 unsigned int bin digits = 0; unsigned int input; std::cin >> input; assert(input > 0); while (input > 0) { input /= 2; ++bin digits; }
do {...} while (...); do-Schleife Der Unterschied zur while-Schleife ist, dass der Rumpf der do-Schleife mindestens einmal ausgef¨uhrt wird. Sie hat ein “;” am Schluss. int input; do { std::cout > input; } while (input >= 0); std::cout > n; // Divide input by n numbers // Stop if 0 is entered. for (int i = 0; i < n; ++i) { double k; std::cin >> k; if (k == 0) break; // go straight to Output input /= k; } // Output std::cout input >> n; // Divide input by n numbers // Skip entered 0’s. for (int i = 0; i < n; ++i) { double k; std::cin >> k; if (k == 0) continue; // go straight to ++i input /= k; } // Output std::cout
Error: unknown door number. Wrong choice :-( You won the prize! Wrong choice :-(
Generell { ... }
Block
Bl¨ ocke spielen eine grosse Rolle, wenn es darum geht, wo im Programm eine Variable g¨ ultig ist. So ist eine Variable ab ihrer Deklaration bis hin zum Ende des Blocks, in dem sie definiert wurde potentiell g¨ultig. ( ... )
Seite 4 von 5
Programmier-Befehle - Woche 4
( ... ) int main () { unsigned int a; std::cin >> a; if (a < 4) { std::cout z; std::cout > read 33) b >> z; std::cout > ought to read ’a’ // which is not an int.)
my stream.peek()
achstes Zeichen anschauen, ohIm Stream n¨ ne es zu entfernen.
Erfordert: #include oder #include Der R¨uckgabewert ist die int-Repr¨asentierung des n¨achsten Zeichens (als char) im Stream. Der Datentyp des Ru ¨ ckgabewerts ist also int. Diese Funktion ignoriert Whitespaces nie (unabh¨angig davon, ob der Stream zuerst an std::noskipws u ¨ bergeben wurde oder nicht).
std::stringstream str ("my subst"); str >> std::noskipws; // Do not ignore whitespaces. char c; // remove everything before the first ’s’ (but leave ’s’ in str) while (str.peek() != ’s’) str >> c; // str is now: "subst" // miscellaneous std::stringstream num ("3 a"); std::cout c; std::cout...