Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis...

31
Informatik 1 Übung 2

Transcript of Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis...

Page 1: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Informatik 1

Übung 2

Page 2: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Abgabe

• Übung bis Mittwoch, 13:15• Zu zweit abgeben ist ok• Korrektur bis nächste Woche

Page 3: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

NACHBESPRECHUNGÜbung 2

Page 4: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Variablennamen

• Unterstrich erlaubt– _x ist gültig

• Doppelter Unterstrich am Anfang reserviert– __x besser nicht verwenden

Page 5: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Wert von Variablen

• Undefiniert vor erster Zuweisung• Typischerweise zufällig

int main() {int a, b;a = 1;b = 2;

}

Page 6: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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;

}

Page 7: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Main Methode

• Eine main()-Funktion pro Projekt– Programm startet mit main()– Rückgabewert im System sichtbar

int main() { return 0;}

Page 8: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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();}

Page 9: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Auswertung von Ausdrücken

x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition

Page 10: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Auswertung von Ausdrücken

x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)

Page 11: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Auswertung von Ausdrücken

x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)

6 (int)

Page 12: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Auswertung von Ausdrücken

x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)

6 (int)

3 (float)

Page 13: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Auswertung von Ausdrücken

x = 1.0 + 2 + (4 - 2) * 3 Priorität:1. Klammern2. Multiplikation3. Addition2 (int)

6 (int)

3 (float)

9 (float)

Page 14: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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

Page 15: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

WIEDERHOLUNGÜbung 3

Page 16: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Vergleichsoperatoren

• Vergleichen zwei Ausdrücke– Resultat ist ein Wert vom Typ bool (true/false)

• Mathematische BedeutungSchreibweise Bedeutung

== Gleich

!= Ungleich

< Kleiner als

<= Kleiner gleich

Page 17: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Logische Operatoren

• Verbinden zwei logische Werte– Operanden müssen vom Typ bool sein

• Logische BedeutungSchreibweise Bedeutung

&& UND

|| ODER

! NICHT

Page 18: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Logischer Ausdruck

x > 10 && y < 20 || z == 1 Priorität:1. Vergleichsoperatoren2. Logisches UND3. Logisches ODER

Page 19: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Logischer Ausdruck

x > 10 && y < 20 || z == 1 Priorität:1. Logisches NICHT2. Vergleichsoperatoren3. Logisches UND4. Logisches ODER

bool bool bool

Page 20: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Logischer Ausdruck

x > 10 && y < 20 || z == 1 Priorität:1. Logisches NICHT2. Vergleichsoperatoren3. Logisches UND4. Logisches ODER

bool bool bool

bool

Page 21: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Logischer Ausdruck

x > 10 && y < 20 || z == 1 Priorität:1. Logisches NICHT2. Vergleichsoperatoren3. Logisches UND4. Logisches ODER

bool bool bool

bool

bool

Page 22: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

Fallunterscheidungen

• Anweisungen nur unter bestimmten Bedingungen ausführen

Page 23: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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

Page 24: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

If-then-else

• Bedingte Ausführung einer Anweisung• Bedingung muss logischer Ausdruck sein– Ausdruck vom Typ bool

if (bedingung) anweisung1;

Page 25: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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;

Page 26: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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;

Page 27: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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;

Page 28: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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;

Page 29: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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;

Page 30: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

ÜBUNGÜbung 3

Page 31: Informatik 1 Übung 2. Abgabe Übung bis Mittwoch, 13:15 Zu zweit abgeben ist ok Korrektur bis nächste Woche.

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