20.07.2013 Aufrufe

Vordiplomklausur im Fach Informatik (für Elektrotechniker) – mit ...

Vordiplomklausur im Fach Informatik (für Elektrotechniker) – mit ...

Vordiplomklausur im Fach Informatik (für Elektrotechniker) – mit ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Name: Matr.<strong>–</strong>Nr.: 6<br />

Aufgabe 4 (3+2+2+3 Punkte): Gegeben ist das Registermaschinenprogramm P:<br />

(s1a3a4)1(s4a1)4(s3(s3a4)3(s4s4a3)4a2)3s2<br />

Die Eingabe erfolgt in Register 1, alle anderen Register enthalten initial den Wert 0.<br />

a) Geben Sie die Registerinhalte aller verwendeten Register nach Ablauf des Programms<br />

P bei den Eingaben n ∈ {0, 1, 2, 7, 8, 9} an!<br />

Benutzt werden die Register 1, 2, 3, 4.<br />

n (R1, R2, R3, R4)<br />

0 ⇒ (0, 0, 0, 0)<br />

1 ⇒ (1, 0, 0, 0)<br />

2 ⇒ (2, 1, 0, 0)<br />

n (R1, R2, R3, R4)<br />

7 ⇒ (7, 2, 0, 0)<br />

8 ⇒ (8, 3, 0, 0)<br />

9 ⇒ (9, 3, 0, 0)<br />

b) Welche Funktion berechnet das Programm P?<br />

Der Eingabewert wird solange halbiert, bis 0 erreicht wird. Es wird gezählt,<br />

wie oft halbiert wird, also wird die größte Zahl x best<strong>im</strong>mt <strong>für</strong> die 2 x ≤ n<br />

ist, also ⌊log 2 n⌋. Doch Achtung! Diese Argumentation gilt nur <strong>für</strong> n = 0. Für<br />

n = 0 wird 0 = ⌊log 2 0⌋ berechnet. (Deshalb auch Teil d.)<br />

c) Wieviele Schritte führt das Programm P größenordnungsmäßig in Abhängigkeit von<br />

der Eingabegröße n aus? Begründen Sie! (Hinweis: O-Notation!)<br />

Die Laufzeit wird hauptsächlich von der Schleife best<strong>im</strong>mt, in der das Register 3 als Schleifenvariable<br />

dient. Achtung! Das Register 3 wird innerhalb der Schleife verändert. Also kann<br />

nicht einfach auf Θ(n) geschlossen werden. In der Schleife werden n + n/2 + . . . + n/2 log 2 n =<br />

log2 n<br />

i=0 n/2i = 2n−1 (geometrische Reihe!) Operationen ausgeführt. Also ist Θ(n) doch richtig.<br />

d) Ergänzen Sie das Programm P derart, dass es bei der Eingabe 0 nicht anhält und<br />

<strong>für</strong> alle anderen Eingaben wie P funktioniert!<br />

a5<br />

(s1a3a4)1(s4a1)4<br />

. . .<br />

(s3<br />

)3<br />

. . .<br />

s2<br />

s5<br />

(s3a4)3(s4s4a3)4<br />

. . .<br />

a2<br />

. . .<br />

(a5)5

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!