Informatik 1 Übung 2
Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche
Übung 2 Nachbesprechung
Variablennamen Unterstrich erlaubt _x ist gültig Doppelter Unterstrich am Anfang reserviert __x besser nicht verwenden
Wert von Variablen Undefiniert vor erster Zuweisung Typischerweise zufällig int main() { int a, b; a = 1; b = 2; }
Komma-Operator Komma am besten nie verwenden Ausser mehrere Variablen deklarieren int main() { int a, b, c; } int main() { int a, b, c = 10; } int main() { int a, b; int c = 10; }
Main Methode Eine main()-Funktion pro Projekt Programm startet mit main() Rückgabewert im System sichtbar int main() { return 0; }
Main Methode Eine main()-Funktion pro Projekt Vorübergehend Später Programm startet mit main() Rückgabewert im System sichtbar Vorübergehend Nur eine .cpp-Datei pro Projekt Später Mehrere .cpp-Dateien Eigene Funktionen int aufgabe1() { return 1; } int main() { return aufgabe1();
Auswertung von Ausdrücken Priorität: Klammern Multiplikation Addition x = 1.0 + 2 + (4 - 2) * 3
Auswertung von Ausdrücken Priorität: Klammern Multiplikation Addition x = 1.0 + 2 + (4 - 2) * 3 2 (int)
Auswertung von Ausdrücken Priorität: Klammern Multiplikation Addition x = 1.0 + 2 + (4 - 2) * 3 2 (int) 6 (int)
Auswertung von Ausdrücken Priorität: Klammern Multiplikation Addition x = 1.0 + 2 + (4 - 2) * 3 2 (int) 6 (int) 3 (float)
Auswertung von Ausdrücken Priorität: Klammern Multiplikation Addition x = 1.0 + 2 + (4 - 2) * 3 2 (int) 6 (int) 3 (float) 9 (float)
Auswertung von Ausdrücken Priorität: Klammern Multiplikation Addition x = 1.0 + 2 + (4 - 2) * 3 2 (int) 6 (int) 3 (float) 9 (float) x = 9.0 Zuweisung am Schluss
Auswertung von Ausdrücken Priorität: Klammern Multiplikation Addition x = 1.0 + 2 + (4 - 2) * 3 2 (int) 6 (int) 3 (float) 9 (float) x = 9.0 Zuweisung am Schluss
Übung 3 wiederholung
Vergleichsoperatoren Vergleichen zwei Ausdrücke Resultat ist ein Wert vom Typ bool (true/false) Mathematische Bedeutung Schreibweise Bedeutung == Gleich != Ungleich < Kleiner als <= Kleiner gleich
Logische Operatoren Verbinden zwei logische Werte Logische Bedeutung Operanden müssen vom Typ bool sein Logische Bedeutung Schreibweise Bedeutung && UND || ODER ! NICHT
Logischer Ausdruck Priorität: x > 10 && y < 20 || z == 1 Vergleichsoperatoren Logisches UND Logisches ODER x > 10 && y < 20 || z == 1
Logischer Ausdruck Priorität: Logisches NICHT Vergleichsoperatoren Logisches UND Logisches ODER x > 10 && y < 20 || z == 1 bool bool bool
Logischer Ausdruck Priorität: Logisches NICHT Vergleichsoperatoren Logisches UND Logisches ODER x > 10 && y < 20 || z == 1 bool bool bool bool
Logischer Ausdruck Priorität: Logisches NICHT Vergleichsoperatoren Logisches UND Logisches ODER x > 10 && y < 20 || z == 1 bool bool bool bool bool
Fallunterscheidungen Anweisungen nur unter bestimmten Bedingungen ausführen
Fallunterscheidungen If-then-else Ternary operator Switch-case Beispiel if (x>0) { y = sqrt(x); } else { y = sqrt(-x); } y = x>0 ? x : -x; switch(x) { case 0: y = 2; break; case 1: y = 5; break; case 2: y = 8; break; case 3: y = 11; break; default: y = 0; Verwendung Komplexe Bedingung Bedingte Zuweisung Unterscheidung nach Wert Wenige Fälle Viele Fälle
If-then-else Bedingte Ausführung einer Anweisung Bedingung muss logischer Ausdruck sein Ausdruck vom Typ bool if (bedingung) anweisung1;
If-then-else Bedingte Ausführung einer Anweisung Bedingung muss logischer Ausdruck sein Ausdruck vom Typ bool if (bedingung) anweisung1; if (bedingung) anweisung1; else anweisung2;
If-then-else Bedingte Ausführung einer Anweisung Bedingung muss logischer Ausdruck sein Ausdruck vom Typ bool if (bedingung) anweisung1; if (bedingung) { anweisung1; anweisung2; } else { anweisung3; anweisung4; } if (bedingung) anweisung1; else anweisung2;
If-then-else Bedingte Ausführung einer Anweisung Bedingung muss logischer Ausdruck sein Ausdruck vom Typ bool if (bedingung) { anweisung1; anweisung2; } else if (bedingung) { anweisung3; anweisung4; } else { anweisung 5; } if (bedingung) anweisung1; if (bedingung) { anweisung1; anweisung2; } else { anweisung3; anweisung4; } if (bedingung) anweisung1; else anweisung2;
Ternary operator Bedingte Zuweisung Bedingung ist true -> x = wert1; Bedingung ist false -> x = wert1; x = bedingung ? wert1 : wert2; if (bedingung) x = wert1; else x = wert2;
Switch-case Grosse Fallunterscheidung Variable muss eine Zahl sein Break nicht vergessen! switch(ausdruck) { case wert1: anweisung1; break; case wert2: anweisung2; break; case wert3: anweisung3; break; default: anweisung4; break; } if (zahl==wert1) anweisung1; else if (zahl==wert2) anweisung2; else if (zahl==wert3) anweisung3; else anweisung4;
Übung 3 Übung
Fallunterscheidungen If-then-else Ternary operator Switch-case Beispiel if (x>0) { y = sqrt(x); } else { y = sqrt(-x); } y = x>0 ? x : -x; switch(x) { case 0: y = 2; break; case 1: y = 5; break; case 2: y = 8; break; case 3: y = 11; break; default: y = 0; Verwendung Komplexe Bedingung Bedingte Zuweisung Unterscheidung nach Wert Wenige Fälle Viele Fälle