Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Beispielklausur In diesem Kapitel wird ein Beispiel für eine Klausur vorgestellt. Dabei sind jeweils die Aufgaben und die Lösungen gegeben. Beachten Sie.

Ähnliche Präsentationen


Präsentation zum Thema: "Beispielklausur In diesem Kapitel wird ein Beispiel für eine Klausur vorgestellt. Dabei sind jeweils die Aufgaben und die Lösungen gegeben. Beachten Sie."—  Präsentation transkript:

1 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.

2 Informatik Fehlt in dieser Beispielklausur a)...

3 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)Wie groß ist der Informationsgehalt der einzelnen Zeichen b)Wie groß ist der Informationsgehalt der Nachricht abc c)Wie groß ist der mittlere Informationsgehalt einer Nachricht mit 1000 Zeichen d)Finden Sie einen möglichst optimalen Code für dieses Alphabet e)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 ?

4 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) : 101 b)Machen Sie schriftlich die Gegenprobe (auch im Binärsystem) c)10111 – 1010 (durch Addition des Zweierkomplements)

5 Zahlensysteme Fehlt in dieser Beispielklausur: a)Gleitpunktzahlen b)IEEE 754 c)...

6 Datenstrukturen Gegeben ist folgende Struktur 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. Vorname Nachname Vorname Nachname Vorname Nachname...

7 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

8 Algorithmenentwurf Fehlt in dieser Beispielklausur: a)Weitere Umformungen b)Blockung c)Umwandlung Rekursion/Iteration d)...

9 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)Zeichnen Sie für eine Zahl das Turingband vor- und nach Ausführung des Turingprogrammes

10 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: // Eingabe: Keine 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

11 Vollständige Verifikation 1.gegeben ist der folgende Algorithmus zum schnellen Potenzieren (Legendre Algorithmus) // Vorbedingung P(V): a>0 b 0 x = a; y = b; z = 1; while y > 0 { if odd(y) then z = z*x; y = y div 2; // Ganzzahldivision x = x*x; } 1.Was ist die Nachbedingung dieses Algorithmus 2.Bestimmen die die Schleifeninvariante 3.Beweisen Sie die Korrektheit de Legendre Algorithmus

12 Komplexität Fehlt in dieser Beispielklausur: a)Fragen zu den Konstanten c und n 0 b)Beispiele für O(...) c)Bestimmung des Aufwandes für iterativen/rekursiven Algorithmus d)...

13 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(x i )h(x i ) = 1000 x ( 1/2x1 + 1/8x3 + 1/8x3 + 1/8x3 + 1/8x3 )bit = 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)Redundanz = L(x)-H l(x)=1bit, l(b)=l(c)=l(d)=l(e)=3bit (entsprechend der Codierung in d.) L(x) = p(x i )l(x i ) = (0,125x1 + 0,5x3 + 0,125x3 + 0,125x3 + 0,125x3)bit = 2,75 bit h(b) = 1bit, h(a)=h(c)=h(d)=h(e)=-ld(1/8)=3bit H(x) = p(x i )h(x i ) = (0,5x1 + 0,125x3 + 0,125x3 + 0,125x3 + 0,125x3 )bit = 2 bit Redundanz = L(x)-H = 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) (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.

14 Lösung: Zahlensysteme Dezimalzahl 7,25 a)Vorkommateil:Nachkommateil 7 : 2 = 3 Rest: 12 · 0,25 = 0,5 --> Ziffer: 0 3 : 2 = 1 Rest: 12 · 0,5 = 1 --> Ziffer: 1 1 : 2 = 0 Rest: 1 -> 111->0,01 Binärzahl: b)0111, = 7,4 16 (7 * * ) c)111,010 2 = 7,2 8 (7 * * 8 -1 ) Berechnung : 101 = x – auf gleiche Längenbringen Binärkomplement = Lösung: 1101 Überlauf weggelassen

15 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; } Personenliste: array[ ] of Person;

16 Lösung: Algorithmenentwurf Umformung der while-Schleife: a)Als repeat-Schleife: x=a; y=5; if (x>0) { repeatdo {{ y = y+1; y = y+1; x = x–1; x = x-1; } until (x 0} } b)Sprünge und Marken x=a; y=5; x=a; y=5; 1: if (x 0) y = y+1; { x = x–1; y = y+1; goto 1; x = x–1; 2:... goto 1 } 2:...

17 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:{q 0, q 1,q 2 }, Startzustand. q 0, Endzustände:{q 2 } Zustandsübergänge:A Q A Q {r, l} _,q 0 _,q 0,r 0,q 0 1,q 1,r 1,q 0 0,q 1,r 0,q 1 1,q 1,r 1,q 1 0,q 1,r _,q 1 _,q 2,r Das Turing-Band vor und nach Abarbeitung des Turing-Programmes für die Zahl:

18 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 Hoareschen 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 x 0 } while (x>0) { { INV x>0 (y+1)-1=8-x x 0 x>0 } y = y+1; { y-1=8-x x 0 x>0 y=9-((x-1)+1) (x-1)+1>0 } x = x-1; { y=9-(x+1) x+1>0 y=8-x x 0 INV } } { INV x 0 y=8-x x=0 y=8 = Q } q.e.d.

19 Lösung: Vollständige Verifikation // Vorbedingung P(V): a>0 b 0 x = a; y = b; z = 1; // x=a y=b z=1 x>0 b 0 { INV: z x y =a b y 0 } while y > 0 { {INV y>0 (z*x/x)*x y =a b y>0 } if odd(y) then z = z*x; { odd(y) z/x*x y =a b y>0 } (schwache Nachbedingung) ( odd(y) z*x y-1 =a b y>0 ) ( even(y) z*x y =a b y>0 ) // else { even(y) z*x y =a b y>0 } (schwache Nachbedingung) ( odd(y) z*x y-1 =a b y>0 ) ( even(y) z*x y =a b y>0 ) { ( odd(y) z*x (2(y div 2)+1)-1 =a b 2(y div 2)+1>0 ) ( even(y) z*x 2(y div 2) =a b 2(y div 2) >0 ) } y = y div 2; // Ganzzahldivision { ( odd(y) z*x (2y+1)-1 =a b 2y+1>0 z*x 2y =a b 2y 0 ) ( even(y) z*x 2y =a b 2y >0 z*x 2y =a b 2y>0 ) } x = x*x; { (odd(y) z*x y =a b 2y 0) (even(y) z*x y =a b 2y>0) (odd(y) z*x y =a b 2y 0) (even(y) z*x y =a b 2y 0) z*x y =a b 2y 0 (odd(y) even(y)) z*x y =a b y 0 } } { INV (y 0) (z*x y =a*b) (y=0) z*x 0 =a b = Q(V) }


Herunterladen ppt "Beispielklausur In diesem Kapitel wird ein Beispiel für eine Klausur vorgestellt. Dabei sind jeweils die Aufgaben und die Lösungen gegeben. Beachten Sie."

Ähnliche Präsentationen


Google-Anzeigen