Informatikgrundlagen Bachelor Praktische Informatik Name: Prof. Dr.-Ing. Klaus Berberich Vorname: Aufgabe 1 2 Matrikel: 3 4 5 P % Punkte Aufgabe 1 (4 Punkte) (a) Wandeln Sie die Dezimalzahl 2475 ins Hexadezimalsystem und ins Binärsystem um. (b) Betrachten Sie alle binären Kommazahlen der Form (0, . . .)2 . Wie viele Nachkommastellen sind mindestens nötig, um die Dezimalzahl 1, 0 mit einer Abweichung von weniger als 0, 05 darzustellen? Begründen Sie Ihre Antwort. Aufgabe 2 (4 Punkte) Gegeben sind die drei logischen Ausdrücke A := (a ⇒ b) ⇒ c B := a ⇒ (b ⇒ c) C := ¬(a ∧ ¬b) ∧ b ∨ a (a) Ermitteln Sie, für wie viele Belegungen A und B den gleichen Wahrheitswert besitzen. (b) Ermitteln Sie die KDN von A ⊕ B. (c) Vereinfachen Sie C schrittweise mittels algebraischer Umformungen. Aufgabe 3 (4 Punkte) (a) Gegeben sei folgendes RAM-Programm, bei dem als Eingabewert eine natürliche Zahl n in s[0] gespeichert ist: INPUT 0 OUTPUT 1 0: a <- s[0] 1: i1 <- 0 2: a <- a div 3 3: i1 <- i1 + 1 4: if a > 0 then jump 2 5: i1 <- i1 - 1 6: s[1] <- i1 7: HALT Geben Sie eine Formel an, die zum Eingabewert n die Anzahl der Schritte des Programms berechnet. Begründen Sie Ihre Antwort. Prüfungsklausur IG Wintersemester 2017/2017 – 22. März 2017 Seite 1 von 3 (b) Ein rekursiver Algorithmus besitzt den Aufwand ( 10 T (n) = 6 · T (n/2) n=1 , sonst wobei n = 2k eine Zweierpotenz ist. Bestimmen Sie durch fortlaufendes Anwenden der Rekursion den Aufwand T (n) in der Form T (n) = a · nb mit reellen Zahlen a und b und prüfen Sie, ob der asymptotische Aufwand besser als O(n3 ) ist. Aufgabe 4 (4 Punkte) Der Median einer Menge von Zahlen ist ein Wert in ihrer Mitte, d.h. er ist größer gleich als die eine Hälfte und kleiner gleich als die andere Hälfte der Zahlen. Handelt es sich um eine ungerade Anzahl von Zahlen, so ist die Zahl, die nach Sortieren in der Mitte steht, ein Median. Andernfalls ist der Mittelwert der beiden Zahlen, die nach Sortieren in der Mitte stehen, ein Median. Beispiele: • {4, 7, 1, 9, 3} hat 4 als Median • {2, 5, 1, 3} hat 2, 5 als Median (a) Schreiben Sie in Pseudocode eine Funktion, welche den Median eines gegebenen Arrays von Zahlen ermittelt. Verwenden Sie hierzu folgende Vorlage real function median ( real [] a ) { ... } Sie dürfen annehmen, dass Ihnen eine Funktion real [] function sort ( real [] a ) zur Verfügung steht, welche ein gegebenes Array von Zahlen aufsteigend sortiert. (b) Nehmen Sie an, dass das gegebene Array die Länge n hat und darin m ≤ n verschiedene Zahlen enthalten sind. Welche Zeitkomplexität hat ihre Funktion, wenn zum Sortieren (i) MergeSort (ii) CountingSort verwendet wird? Prüfungsklausur IG Wintersemester 2017/2017 – 22. März 2017 Seite 2 von 3 Name: Vorname: Matrikel: Aufgabe 5 (4 Punkte) (a) Führen Sie auf dem gegebenen MinHeap folgende Operationen nacheinander aus. Geben Sie den Zustand des MinHeaps nach jeder Operation graphisch und als Array der Länge 7 an. (a) enqueue(6) (b) enqueue(3) (c) dequeue() (d) enqueue(1) 2 9 4 7 5 (b) Ihnen sei ein Array ganzer Zahlen a der Länge n gegeben, in dem bereits i Zahlen gespeichert sind. Sie möchten möglichst effizient überprüfen, ob das Array einem gültigen MinHeap entspricht, d.h. ob die Heap-Eigenschaften erfüllt sind. Beschreiben Sie ihre Vorgehensweise (Pseudo-Code ist nicht zwingend notwendig) und bestimmen Sie die Zeitkomplexität in Abhängigkeit von i und n. Prüfungsklausur IG Wintersemester 2017/2017 – 22. März 2017 Seite 3 von 3