09.11.2001 3. Ubung zur Vorlesung Informatik A Institut f ur Informatik, FU Berlin, WS 2001/2002 1. (2 Punkte) Sei P (x; y ) das Pradikat "x belegt Vorlesung y ", wobei x aus der Menge aller Studenten am Institut ist und y aus der Menge der in diesem Semester angebotenen Vorlesungen. Beschreiben Sie die folgenden Aussagen in deutschen Satzen. (a) (b) (c) 98 89 88 x y x 98 89 99 ( ), xP (x; y ), yP (x; y ), ( ) x yP (x; y ) x yP (x; y ) yP x; y y xP x; y 2. (4 Punkte) Bestimmen Sie den Wahrheitswert der folgenden Aussagen fur reelle Variablen x; y; z und schreiben Sie die dazu negierten Aussagen ohne Verwendung des Operators :. (a) (b) (c) (d) 8 ( 2 1_ 2 ) 8 9 8 ( 6= 0 ^ 6= ) 8 8 9 ( 0_( 0^ 8 9 8 ( () + ) x x < x x y z y x y z x x y z tan z > x x y > y z x > x z < x y z > 0)) y 3. (6 Punkte) Legen Sie ein Haskell{Skript Dierent.hs bzw. Dierent.lhs an, das die folgenden Funktionen enthalt und zusatzlich ggf. von Ihnen denierte weitere Hilfsfunktionen. (a) Eine Funktion threeDiff :: Int > Int > Int > Bool, die genau dann True ergibt, wenn die Argumente paarweise verschieden sind. (b) Eine Funktion threeEqual :: Int > Int > Int > Bool, die genau dann True ergibt, wenn alle Argumente gleich sind. (c) Eine Funktion howManyDiff :: Int > Int > Int > Int, die angibt, wie viele verschiedene Argumente auftreten. 4. (4 Punkte) Sie kennen quadratische Gleichungen der Form ax2 + bx + c = 0, wobei die Parameter a; b; c reelle Zahlen sind. Falls a 6= 0, so heien die Geichungen nichtdegeneriert. Sie erinnern sich auch, dass eine nichtdegenerierte Gleichung 2 reelle Nullstellen hat, falls 2 2 b > 4ac ist, eine reelle Nullstellen im Fall b = 4ac und keine reelle Nullstellen sonst. Im degenerierten Fall a = 0 gibt es keine Nullstelle falls b = 0; c 6= 0, eine Nullstelle falls b 6= 0 und jede reelle Zahl erf ullt die Gleichung, falls alle Parameter 0 sind. Legen Sie ein Haskell{Skript QuadratGl.hs bzw. QuadratGl.lhs an, dass die folgenden Funktionen enthalt. (a) Eine Funktion numberNDroots :: Float > Float > Float > Int soll die Anzahl der Nullstellen ausgeben fur den Fall, dass a 6= 0 ansonsten eine Fehlermeldung. (b) Eine Funktion numberRoots :: Float > Float > Float > Int , die die Anzahl der Nullstellen im allgemeinen Fall angibt. Falls jede reelle Zahl Nullstelle ist, soll der Funktionswert 3 sein. Hinweise: mentierung. Achten Sie bei Programmieraufgaben immer auf eine ausreichende und klare Kom- Melden Sie sich bei [email protected] und Tutor bis 16.11. mit Matrikelnummer an, wenn Sie einen benoteten Schein brauchen. (Mail subject: Note) Abgabe: 21.11.2000, 12 Uhr s.t.