Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis...
-
Upload
gretel-stoltz -
Category
Documents
-
view
107 -
download
2
Transcript of Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis...
Informatik 1
Übung 2
Abgabe
• Übung bis Mittwoch, 13:15• Zu zweit abgeben ist ok• Korrektur bis nächste Woche
NACHBESPRECHUNGÜbung 2
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– 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
x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition
Auswertung von Ausdrücken
x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)
Auswertung von Ausdrücken
x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)
6 (int)
Auswertung von Ausdrücken
x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)
6 (int)
3 (float)
Auswertung von Ausdrücken
x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)
6 (int)
3 (float)
9 (float)
Auswertung von Ausdrücken
x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)
6 (int)
3 (float)
9 (float)
x = 9.0 Zuweisung am Schluss
WIEDERHOLUNGÜbung 3
Vergleichsoperatoren
• Vergleichen zwei Ausdrücke– Resultat ist ein Wert vom Typ bool (true/false)
• Mathematische BedeutungSchreibweise Bedeutung
== Gleich
!= Ungleich
< Kleiner als
<= Kleiner gleich
Logische Operatoren
• Verbinden zwei logische Werte– Operanden müssen vom Typ bool sein
• Logische BedeutungSchreibweise Bedeutung
&& UND
|| ODER
! NICHT
Logischer Ausdruck
x > 10 && y < 20 || z == 1 Priorität:1. Vergleichsoperatoren2. Logisches UND3. Logisches ODER
Logischer Ausdruck
x > 10 && y < 20 || z == 1 Priorität:1. Logisches NICHT2. Vergleichsoperatoren3. Logisches UND4. Logisches ODER
bool bool bool
Logischer Ausdruck
x > 10 && y < 20 || z == 1 Priorität:1. Logisches NICHT2. Vergleichsoperatoren3. Logisches UND4. Logisches ODER
bool bool bool
bool
Logischer Ausdruck
x > 10 && y < 20 || z == 1 Priorität:1. Logisches NICHT2. Vergleichsoperatoren3. Logisches UND4. Logisches ODER
bool bool bool
bool
bool
Fallunterscheidungen
• Anweisungen nur unter bestimmten Bedingungen ausführen
FallunterscheidungenIf-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;else anweisung2;
if (bedingung) anweisung1;
If-then-else
• Bedingte Ausführung einer Anweisung• Bedingung muss logischer Ausdruck sein– Ausdruck vom Typ bool
if (bedingung) { anweisung1; anweisung2;} else { anweisung3; anweisung4;}
if (bedingung) anweisung1;else anweisung2;
if (bedingung) anweisung1;
If-then-else
• Bedingte Ausführung einer Anweisung• Bedingung muss logischer Ausdruck sein– Ausdruck vom Typ bool
if (bedingung) { anweisung1; anweisung2;} else { anweisung3; anweisung4;}
if (bedingung) anweisung1;else anweisung2;
if (bedingung) { anweisung1; anweisung2;} else if (bedingung) { anweisung3; anweisung4;} else { anweisung 5;}
if (bedingung) anweisung1;
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Übung 3
FallunterscheidungenIf-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