Informatik
Informatik 1 & 2 Basisjahr ETH
Informatik 1 & 2 Basisjahr ETH
-
- 1 / 31
-
Cartes-fiches
Datentyp für ganze Zahlen
int a = 1;
Eingabe via Terminal (z.B. Tastatureingabe)
std : : cin >>
Ausgabe in das Terminal
std : : cout <<
Zuweisungsoperator. Weist einem L-Wert einen neuen Wert zu.
=
Multiplikation von zwei R-Werten
*
Datentyp für natürliche Zahlen (inklusive 0)
unsigned int b = 1
Schreibzugriff auf Variable verbieten.
Gemeint ist naturlich der Schreibzugriff ¨ nach der Initialisierung
const
Division
/ Präzedenz: 14 und Assoziativität: links
Modulo
%
Rest der Ganzzahldivision
Prä-Inkrement.
Erhöht den Wert der Variablen und gibt den neuen Wert zuruck.
++a
Post-Inkrement. Erhöht den Wert der Variablen und gibt den alten Wert zuruck.
a++
Addiert den rechten Operanden zum linken Operanden.
+=
int a = 4;
a += 5; // a gets value 9
Subtrahiert den rechten Operanden zum linken Operanden.
a = 10;
a - = 3; //a get's new value 7
Multipliziert den rechten Operanden zum linken Operanden.
a =3;
a *= 5; //a get's new value of 15
Dividiert den rechten Operanden zum linken Operanden.
a =6;
a /= 2; //a get's new value of 3
Datentyp für Wahrheitswerte
bool;
for (bool another = true; another;) {
int a;
std::cin >> a; if (a < 3) // Note: a < 3 is of type bool another = false;
}
Logisches UND
&&
Kurzschluss-Auswertung: && wertet immer den linken Operanden zuerst aus. Ergibt dieser false, so wird der rechte Operand nicht mehr ausgewertet
if (3 > 2 && 10 > 11) // no short circuit evaluation
std::cout << "Of course not!\n";
Logisches ODER
| |
Kurzschluss-Auswertung: || wertet auch immer den linken Operanden zuerst aus. Ergibt dieser true, so wird der rechte Operand nicht mehr ausgewertet
int a = 3;
if (3 < 8 || ++a < 2) // short circuit evaluation
std::cout << "Yes!\n";
std::cout << a << "\n"; // Output: 3
Logisches NICHT
!
Präzedenz: 16 und Assoziativität: rechts
int a,b,c;
std::cin >> a >> b >> c;
if ( ! (a < b && c < b) )
std::cout << "b is not max!" << "\n";
Strikt kleiner
<
Präzedenz: 11 und Assoziativität: links
strikt grösser
>
Präzedenz: 11 und Assoziativität: links
kleiner gleich
<=
Präzedenz: 11 und Assoziativität: links
gröser gleich
>=
Präzedenz: 11 und Assoziativität: links
exakt gleich
==
Präzedenz: 10 und Assoziativität: links
ungleich
!=
Präzedenz: 10 und Assoziativität: links
bedingtes Ausführen von Codes
if - else
int a,b;
std::cin >> a >> b;
// if a < b then output "Ja"; otherwise output "Nein"
if (a < b)
{ std::cout << "Ja\n";
} else {
std::cout << "Nein\n";
}
sofortiges Stoppen des Programms zu Testzwecken
assert
Erfordert: #include <cassert>
int a,b;
std::cin >> a >> b;
assert(b != 0); // prevent division by 0
std::cout << a / b << "\n";
for Schleife
for (...) {...}
Wenn man eine leere Condition als Abbruchbedingung angibt, so wird diese als true interpretiert.
unsigned int sum = 0;
for (unsigned int i = 1; i <= n; ++i) {
sum += i;
std::cout << "Intermediate result: " << sum << "\n";
variabeln mit unverändertem Wert
const
Konstante
const vor integer
const int speed_of_light = 299792458;
L-Wert
Definiert als Wert des Objekts an seiner Adresse. Er schreibt jedem Objekt einen Wert zu und ermöglicht dem Program die Variabel im späteren Verlauf aufzurufen.
R-Wert
Alles was kein L-Wert ist. (Bedeutet meistens, dass der R-Wert nur auf seinen Wert bezogen wird.)