Hinweise: Aufgabe ( Punkte) Aufgabe ( Punkte)

Werbung
Informatikgrundlagen
Bachelor Praktische Informatik
Name:
Prof. Dr.-Ing. Klaus Berberich
Vorname:
Aufgabe
1
2
Matrikel:
3
4
5
P
Punkte
Hinweise:
• Erlaubtes Hilfsmittel: drei von Hand beschriebene Blätter (DIN A4)
• Bitte begründen Sie Ihre Antworten
Aufgabe 1 (4 Punkte)
1. Wandeln Sie die Dezimalzahl 1492 ins Hexadezimalsystem um.
2. Wandeln Sie die Hexadezimalzahl 1AB ins Dezimalsystem um.
3. Führen Sie die Subtraktion CF1 - 1FC zweier Hexadezimalzahlen wie folgt durch:
(a) Umwandeln der Zahlen ins Binärsystem
(b) Subtraktion mittels Zweierkomplement
(c) Umwandeln des Ergebnisses ins Hexadezimalsystem
Aufgabe 2 (4 Punkte)
1. Ermitteln Sie unter Verwendung einer Wertetabelle die KDN des nachstehenden logischen Ausdrucks
¬ (a ⇒ (b ⊕ (¬ c)))
2. Vereinfachen Sie den nachstehenden Ausdruck durch schrittweise Umformungen nach den Regeln der Booleschen Algebra
(¬ x) ∧ (¬ (¬ (x ∧ y) ∧ z))
Prüfungsklausur IG
Sommersemester 2016 – 8. August 2016
Seite 1 von 3
Aufgabe 3 (4 Punkte)
Der Aufwand T (n) in Elementaroperationen betrage für einen Teile-Herrsche-Algorithmus
T (n) =
1
4 · T (n/2) + n
: n=1
: sonst
wobei n = 2k eine Zweierpotenz ist.
1. Berechnen Sie durch Anwenden der Rekursion nacheinander T (2), T (4) und T (8)
2. Zeigen Sie durch schrittweises Anwenden der Rekursion ausgehend von T (n), dass
T (n) = 4 3 · T
n
3
+
n
·
2
−
1
23
gilt.
3. Man kann zeigen (das müssen Sie nicht tun!): T (n) = 4 k + n · 2 k − 1 . Beweisen oder widerlegen Sie anhand dieses Ergebnisses: T (n) ∈ O(n 2 ).
Aufgabe 4 (4 Punkte)
Eine Zeichenkette s heißt Anagramm, wenn sie sich durch Vertauschen von Zeichen aus einer anderen
Zeichenkette t ableiten lässt. So sind die Zeichenketten reifen und ferien sowie die Zeichenketten
leben und nebel jeweils Anagramme zueinander.
1. Schreiben Sie in Pseudo-Code eine Funktion, um zu erkennen, ob zwei gegebene Zeichenketten
s und t zueinander Anagramme sind. Verwenden Sie hierzu folgende Vorlage
bool function isana(char[] s, char[] t) {
}
Nehmen Sie hierzu an, dass Ihnen eine Funktion char[] sort(char[] s) zur Verfügung steht,
welche zu einer gegebenen Zeichenkette s eine Zeichenkette zurückgibt, in der die gleichen Zeichen in alphabetischer Reihenfolge enthalten sind – ruft man die Funktion mit der Zeichenkette
reifen auf, wird die Zeichenkette eefinr zurückgegeben.
2. Welche Laufzeitkomplexität hat ihre Funktion, wenn die Funktion sort mit Hilfe von MergeSort
implementiert ist?
3. Welche Laufzeitkomplexität hat ihre Funktion, wenn die Funktion sort mit Hilfe von CountingSort implementiert ist?
Prüfungsklausur IG
Sommersemester 2016 – 8. August 2016
Seite 2 von 3
Name:
Vorname:
Matrikel:
Aufgabe 5 (4 Punkte)
1. 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) dequeue()
(b) enqueue(7)
(c) dequeue()
(d) enqueue(7)
1
3
4
6
5
8
9
2. Ihnen sei ein absteigend sortiertes Array ganzer Zahlen a der Länge n gegeben. Sie möchten nun
mit möglichst geringer Zeitkomplexität einen MinHeap der Höhe k konstruieren, der die Zahlen
aus dem Array enthält. Beschreiben Sie ihre Vorgehensweise (Pseudo-Code ist nicht notwendig)
und bestimmen Sie die Laufzeitkomplexität in Abhängigkeit von n und k.
Prüfungsklausur IG
Sommersemester 2016 – 8. August 2016
Seite 3 von 3 
Herunterladen