Anhang F:
Beispielklausur
In diesem Kapitel wird ein Beispiel für eine Klausur vorgestellt. Dabei
sind jeweils die Aufgaben und die Lösungen gegeben.
Beachten Sie
Diese Beispielklausur erhebt weder in Form, Inhalt noch Umfang einen
Anspruch auf Vollständigkeit.- dies betrifft insbesondere reine
Wissensfragen, die hier etwas vernachlässigt sind.
Grundsätzlich ist der gesamte in der Vorlesung und den Übungen
behandelte Stoff möglicher Gegenstand der Prüfung
Vorbereitung
Arbeiten Sie die gesamten Folien nochmals durch
Bearbeiten Sie alle Übungsaufgaben nochmals
Arbeiten Sie das Skript von Herrn Geise durch
Bearbeiten Sie dessen Übungsaufgaben
Bedenken Sie: In der Klausur sind keine Hilfsmittel zugelassen.
Informatik
Fehlt in dieser Beispielklausur
a) ...
Information
Eine Nachrichtenquelle sendet Zeichen aus dem Alphabet
X = {a,b,c,d,e} mit den Wahrscheinlichkeiten p(a)=1/2, p(b)=p(c)=p(d)=p(e)=1/8
Berechnen Sie die Entropie der Quelle
a)
b)
c)
d)
e)
Wie groß ist der Informationsgehalt der einzelnen Zeichen
Wie groß ist der Informationsgehalt der Nachricht „abc“
Wie groß ist der mittlere Informationsgehalt einer Nachricht mit 1000 Zeichen
Finden Sie einen möglichst optimalen Code für dieses Alphabet
Angenommen die Wahrscheinlichkeiten wären p(b)=1/2, p(a)=p(c)=p(d)=p(e)=1/8 .
Wie groß wäre dann die Redundanz Ihres Codes aus Aufgabe d)
Hamming
a) Codieren Sie die Binärzahl 1000 mit der Hamming-Methode
b) Wieviele Bits können als fehlerhaft erkannt werden ?
c) Wieviele Bits können korrigiert werden ?
Zahlensysteme
Stellen Sie die Dezimalzahl 7,25
a) Binär
b) Hexadezimal
c) Oktal
dar
Berechnen Sie im Binärsystem (mit Vollständiger Rechnung)
a) 1100101 : 100
b) Machen Sie schriftlich die Gegenprobe
c) 10111 – 1010 (durch Subtraktion des Zweierkomplements
Zahlensysteme
Fehlt in dieser Beispielklausur:
a) Gleitpunktzahlen
b) IEEE 754
c) ...
Datenstrukturen
Gegeben ist folgende Struktur
...
Vorname
Vorname
Vorname
Nachname
Nachname
Nachname
...
a) Definieren Sie Datenstrukturen, mit denen diese Struktur einer zweifach verketteten
Liste repräsentiert werden kann.
b) Begründen Sie, weshalb diese Datenstruktur als „dynamisch“ bezeichnet wird (im
Gegensatz zu statisch)
c) Geben Sie jeweils zwei Gründe für die Verwendung dynamischer bzw. statischer
Datentypen an.
d) Definieren Sie statische Datenstrukturen, mit denen man die oben aufgezeichnete
Struktur möglichst vollständig abbilden kann.
Algorithmenentwurf
Gegeben ist folgender Algorithmus:
x=a, y=5;
while (x>0)
{
y = y+1;
x = x-1;
}
a) Formen sie die while Schleife in eine repeat-Schleife um
b) Bilden Sie die Funktion dieses Algorithmus‘ ohne Schleifen, mit Hilfe von Sprüngen
und Marken nach
Algorithmenentwurf
Fehlt in dieser Beispielklausur:
a)
b)
c)
d)
Weitere Umformungen
Blockung
Umwandlung Rekursion/Iteration
...
Berechenbarkeit
Beweisen Sie mit Hilfe einer Turing-Maschine, dass f: N N mit: f(x) ist
Binärkomplement von x berechenbar ist.
a) Geben Sie dabei an:
Alphabet
Bandinschrift (mit Codierverfahren)
Kopfposition
Zustände (mit dem Startzustand und den Endzustände)
Zustandsübergänge
b) Zeichen Sie für eine Zahl das Turingband vor- und nach Ausführung des
Turingprogrammes
Korrektheit
Tausch zweier Variablen
a) Entwerfen Sie einen Algorithmus zum Vertauschen der Werte zweier
Variablen (vom Typ integer)
Vorbedingung: x=a, y=b
Nachbedingung: x=b, y=a
b) Beweisen Sie die Korrektheit Ihres Algorithmus
Gegeben sei folgender Algorithmus:
x=3, y=5;
while (x>0)
{
y = y+1;
x = x-1;
}
a) Was macht dieser Algorithmus ?
b) Beweisen Sie Ihre Antwort für Frage a) mit Hilfe der Hoare'schen Logik
Komplexität
Fehlt in dieser Beispielklausur:
a)
b)
c)
d)
Fragen zu den Konstanten c und n0
Beispiele für O(...)
Bestimmung des Aufwandes für iterativen/rekursiven Algorithmus
...
Reguläre Ausdrücke
gegeben ist folgender regulärer Ausdruck R (in UNIX-Notation):
[abc]*d[abc]+ (mit Alphabet = {a,b,c,d} )
a) formulieren Sie den Ausdruck in die „klassische“ Notation für reguläre
Ausdrücke um.
b) Geben Sie 2 Worte aus L(R) deren Länge jeweils genau 10 Zeichen
betragen
c) Geben Sie zwei Worte aus * an, die nicht in L(R) sind
d) Konstruieren Sie einen indeterministischen endlichen Automaten A mit
L(A)=L(R)
Konstruieren sie reguläre Ausdrücke (in UNIX-Notation) für
a) Hexadezimalzahlen
b) Eigennamen bestehend aus optionalen Titeln, Vor- und Nachnamen
(eventl. Doppelnamen, keine Beachtung von Umlauten)
Beispiele.: Prof. Dr. Peter Kneisel, Sabine Mustermann, Dr. Kloebner, KarlHeinz Müller-Lüdenscheid)
c) Lall-Sprache: Bestehend aus l‘s, die durch Vokale miteinander-Verbunden
sind
Beispiele: lal, lala, lelalilu, lelelalal
Endliche Automaten
Gegeben ist folgender endlicher Automat A
z0
b
a
z1
z2
b
a
z3
a) Von welchem Typ ist dieser Automat:
Ist dies ein NEA oder ein DEA, begründen Sie Ihre Antwort
b) Formen Sie den Automaten in den anderen Typ so um, dass immer noch
die gleiche Sprache akzeptiert wird.
c) Welches sind die Symbole, die der Automat verarbeitet ?
d) Geben Sie die Übergangsfunktion an
e) Formulieren Sie einen regulären Ausdruck R mit L(R) = L(A)
Grammatiken
gegeben ist folgende Grammatik G:
G = { N,T,P,S }, N = { A,B,C,S }, T = { a,b,c },
P = { S:=ABC, A:=ABA, C:=CBC, A:=a, B:=b, C:=c }
a)
b)
c)
d)
e)
Ist die Grammatik kontextfrei ? Begründen Sie Ihre Antwort
Beweisen Sie: abababcbc L(G)
Begründen sie verbal, weshalb b2a2c3 L(G)
Geben Sie einen regulären Ausdruck R an mit L(R) = L(G)
Welchem Typ der Chomsky-Hierachie entspricht die Sprache, die durch G
definiert ist ?
f) Ist die Sprache L(G) vom Chomsky-Typ-0 ? Begründen Sie Ihre Antwort
Lösung: Information
Eine Nachrichtenquelle sendet Zeichen aus dem Alphabet
X = {a,b,c,d,e} mit den Wahrscheinlichkeiten p(a)=1/2, p(b)=p(c)=p(d)=p(e)=1/8
a) h(a) = -ld(1/2) = 1bit. h(b)=h(c)=h(d)=h(e)=-ld(1/8)=3bit
b) 1bit + 3bit + 3bit = 7 bit
c) 1000 x Mittlerer Informationsgehalt: H(x)=p(xi)h(xi) =
1000 x ( 0,5bit + 4 ( 3bit / 8 ) ) = 1000 x 2bit = 2000 bit
d) Nach Huffmann: p(de)=1/4, p(bc)=1/4, p(debc)=1/2, p(a)=1/2). p(abcde)=1
also z.B.: a=1, b=000, c=001, d=010, e=011
e) L(xneu) = p(xi)l(xi) = (0,5x3 + 0,125x1 + 0,125x3 + 0,125x3 + 0,125x3)bit =
1,5bit + 1,25bit = 2,75 bit
L(x) = ( 1bit/2 + 4 ( 3bit / 8 ) ) = 2bit
Redundanz = L(xneu)-L(x)m = 2,75bit – 2bit = 0.75 bit
Hamming
a) 100P0PP (Relevant: Bit 3,5,7) 100P0P1 (even Parity: also 1 ergänzen)
100P0P1 (Relevant: Bit 3,6,7) 100P011 (even Parity: also 1 ergänzen)
100P011 (Relevant: Bit 5,6,7) 1001011 (even Parity: also 1 ergänzen)
b) Der Hamming-Abstand D ist 3bit, es können D-1 = 2bit Fehler erkannt
werden
c) Es können (D-1)/2 = 1bit Fehler korrigiert werden.
Lösung: Zahlensysteme
Dezimalzahl 7,25
a) Vorkommateil:
7 : 2 = 3 Rest: 1
3 : 2 = 1 Rest: 1
1 : 2 = 0 Rest: 1 -> 111
Binärzahl: 111.01
b) 7,4 (7 * 160 + 4 * 16-1)
c) 7,2 (7 * 80 + 2 * 8-1)
Nachkommateil
2 · 0,25 = 0,5 --> Ziffer: 0
2 · 0,5 = 1
--> Ziffer: 1
->0,01
Berechnung
1100101 : 100 = 11001,01
11001,01 x 100
100
1100101
--0000000
100
0000000
100
----------110010100 mit Komma: 1100101.00
0101
100
--100
100
10111 – 1010 =
10111 + 10110 (Komplement + 1) = 101101 = 1101 (Überlauf weggelassen)
Lösung: Datenstrukturen
Doppelt verkettete Liste
a) Person : record
{ vorname : array[1..64] of char;
nachname: array[1..64] of char;
prev
: *Person;
next
: *Person;
}
b) Man kann aus diesen Strukturen beliebig lange Ketten von Personen
bilden
c) Pro: Dynamisch: Verwaltung von Objekten, deren Anzahl zur
Entwicklungszeit nicht bekannt ist. Speicherverbrauch nur für die Objekte,
die tatsächlich zur Laufzeit existieren.
Pro Statisch: Einfach in der Realisierung, schnell in der Bearbeitung
(Fehlerunanfälliger)
d) Person : record
{ vorname : array[1..64] of char;
nachname: array[1..64] of char;
}
Personeliste: array[1...65534] od Person;
Lösung: Algorithmenentwurf
Umformung der while-Schleife:
a) Als repeat-Schleife:
x=a; y=5;
if (x>0)
{
repeat
{
y = y+1;
x = x –1;
} until (x<=0)
}
b) Sprünge und Marken
x=a; y=5;
1: if (x<=0) goto 2
{
y = y+1;
x = x–1;
goto 1
}
2: ...
Lösung: Berechenbarkeit
Definiere eine Turing-Maschine, die beliebige binäre Ziffernfolgen
bitweise invertiert.
Die Turing-Maschine:
Alphabet : {_,0,1},
Bandinschrift: Zahl, codiert als Binärzahl, alles andere „_“
Kopfposition: links neben der Binärzahl
Zustände: {q0, q1,q2}, Startzustand. q0, Endzustände:{q2}
Zustandsübergänge:
A Q A Q {r, l}
_,q0 _,q0,r
0,q0 1,q1,r
1,q0 0,q1,r
0,q1 1,q1,r
1,q1 0,q1,r
_,q1 _,q2,r
Das Turing-Band vor und nach Abarbeitung des Turing-Programmes für die
Zahl: 44
1 0 1 1 0 0
0 1 0 0 1 1
Lösung: Korrektheit
a) und b)
z : integer
{ x=a,y=b }
z=y; {x=a,y=b,z=b}
y=x; {x=a,y=a,z=b}
x=z; {x=b,y=a,z=b x=b,y=a} q.e.d
Beweis durch Anwendung der Hoare‘schen Logik:
a) Der Algorithmus liefert für y den Wert 8 Nachbedingung Q: (y=8)
b) x=3, y=5; {x=3, y=5}
{ INV: y=8-x x0 }
while (x>0)
{
{ INV x>0 (y+1)-1=8-x x0 x>0 }
y = y+1;
{ y-1=8-x x0 x>0 y=9-((x-1)+1) x0 x>0 }
x = x-1;
{ y=9-(x+1) x0 x>0 y=8-x x0
INV}
}
{ INV x0 y=8-x x=0 y=8 = Q } q.e.d.
Lösung: Reguläre Ausdrücke
gegeben ist folgender regulärer Ausdruck R (in UNIX-Notation):
[abc]*d[abc]+ (mit Alphabet = {a,b,c,d} )
a)
b)
c)
d)
(a|b|c)*d(a|b|c)(a|b|c)*
abcabcdabc
abddab. abcabcaabbccd
NEA:
z0
a,b,c,
z1
d
z2
a,b,c
z3
Konstruieren sie reguläre Ausdrücke (in UNIX-Notation) für
a) [1-9A-F][0-9A-F]*
b) (Prof\.)?(Dr\.)?([A-Z][a-z]*(\-[A-Z][a-z]*)?)? ([A-Z][a-z]*(\-[A-Z][a-z]*)?)
c)VOKAL = [AEIOU]
(l{VOKAL})*l?
Reguläre Ausdrücke sind fehleranfällig: Aber keine Bange: In der Klausur werden
- wenn überhaupt - nur wenig komplexe reguläre Audrücke abverlangt
Lösung: Endliche Automaten
Gegeben ist folgender endlicher Automat A
b
z0
a
z1
b
z2
a
z3
a) Dies ist ein indeterministischer endlicher Automat, da es einen -Übergang
gibt.
b) NEA DEA
z0
b
a
z2
b
a
z3
c) a,b
d) = { (z0, a, z1), (z1, b, z0), (z1, , z1), (z2, a, z3), (z3, b, z2) }
e) a(ba)*a(ba)*
Lösung: Grammatiken
gegeben ist folgende Grammatik G:
G = { N,T,P,S }, N = { A,B,C,S }, T = { a,b,c },
P = { S:=ABC, A:=ABA, C:=CBC, A:=a, B:=b, C:=c }
a) Die Grammatik ist kontextfrei, da auf der linken Seite aller Regeln genau
ein Nichtterminalsymbol steht
b) Beweis durch Ableitung :
S ABC ABABC ABABABC ABABABCBC ... : abababcbc
c) Es gibt keine Regel, die ein b vor ein a produziert, daher ist b2a2c3 L(G),
denn in b2a2c3 ist ein b vor einem a.
d) (ab)+c(bc)*
e) Da die Grammatik G kontextfrei ist die Sprache vom Chomsky-Typ-2. Da
sich die Sprache auch als regulären Ausdruck darstellen lässt, ist die
Sprache sogar Chomsky-Typ 3.
f) Ja, denn jede Chomsky-Typ2 bzw. 3 Sprache ist auch vom Chomsky-Typ0