INFORMATIK I
Übung 4 : Logische Ausdrücke und Verzweigungen
18. März 2015
Daniel Hentzen
dhentzen@student.ethz.ch
Heute
-
Vorlösen Übung 3
- Theorie
-
Vorbesprechung Übung 4
Übung 3 : Datentypen und Funktionen
Aufgabe 2 : Unix : On-line Hilfe
-
which <Kommando> : zeigt den absoluten Pfad zu einem Terminal Kommando an
-
whereis <Kommando> : zeigt den Pfad zum Programm, Source Code und Manual eines Kommandos
-
apropos <Stichwort> sucht im Kurzbeschreib jedes Manuals nach dem Argument
-
info <Kommando> zeigt das Info-Dokument eines Kommandos an
-
man <Kommando> gibt die Hilfe zu einem Befehl an
Aufgabe 3 : Typenumwandlung
Aufgabe 4 : Funktionen und Gültigkeit von Variablen
- Vergleichsoperatoren
- Logische Operatoren
- if/else Verzweigungen
- switch Verzweigungen
- ?: Operator
- Einführung in arrays
- zum Vergleichen von 2 Werten
- Resultat : true (1) oder false (0)
- V.O. werden nach arithmetischen Operatoren ausgewertet
int a = 3, b = 5;bool res;
res = a < b; // kleinerres = a <= b; // kleiner gleichres = a > b; // grösserres = a >= b; // grösser gleichres = a == b; // gleichres = a != b; // ungleich
Achtung !!!
Unterschied zwischen = und ==
-
= ist der Zuweisungs-Operator
- ändert die Variable links in den Wert rechts
-
== ist der Vergleichs-Operator
- evaluiert, ob linker Wert und rechter Wert gleich sind
- Resultat : true (1) oder false (0)
Beispiel
int a = 3, b = 5;bool res;res = (a == b); // res ist false, da 3 nicht gleich 5res = (a = b); // res ist true, obwohl a nicht gleich b, a wird zu 5
bool a = true;
bool b = false;
a && b; // falsea && a; // true
a || b; // trueb || b; // false
!a; // false;!b; // true;
else if

- else if wird nur ausgeführt, wenn die vorherige Bedingung nicht erfüllt ist!
- kann beliebig oft wiederholt werden ( if - else if - else if - ...)
- falls ein Block ausgeführt wurde springt das Programm ans Ende der ganzen if/else Struktur!
else
- ELSE-Block wird ausgeführt falls alle anderen Bedingungen false sind
- benötigt keine Bedingung
- switch-Anweisungen ersetzen lange if-else Ketten
- Programm springt sofort an richtige Stelle
-
default-case ist optional !
-
break nicht vergessen, sonst führt das Programm alle Anweisungen im switch aus, bis das erste break erreicht wird
-
kein break beim default-Fall, da default sich bereits ganz am Ende befindet
Vergleich : if/else - switch
?: Operator
wert = bedingung ? valTrue : valFalse;
int bear_damage;bool isStrong;bear_damage = isStrong ? 100 : 30;
- ?: gibt ersten Wert zurück, falls Bedingung true
- ?: gibt zweiten Wert zurück, falls Bedingung false
<type> <name>[<number of elements>]
int lotto[6] // "Liste" von 6 int
- array = Variable, die viele Werte eines gleichen Typs speichert
- eine Art "Liste" / "Vektor"
lotto[3] // 4. Element!
- Zugriff auf einzelne Elemente durch [ ]
- 0 - (Grösse-1)
-
erstes Element : lotto[0]
- zweites Element : lotto[1]
- ...
-
letztes Element : lotto[5]
int lotto[6];lotto[0] = 5;lotto[1] = 12;lotto[2] = 13;lotto[3] = 28;lotto[4] = 32;lotto[5] = 43;

Übung 4 : Logische Ausdrücke und Verzweigungen
Aufgabe 1 : Logische Ausdrücke
- auf Prioritäten achten !
- in einzelne Blöcke zerlegen
- lieber zu viele Klammern als zu wenige
- benutze : %, ASCII Tabelle
Prüfungsaufgabe Sommer 2012
Aufgabe 2 : Verzweigung I
Aufgabe 3 : Verzweigung II
Aufgabe 4 : Buchstaben Test