Algorithmen und Programmierung WS 14/15

Werbung
TU Ilmenau, Fakultät IA
FG Telematik/Rechnernetze
Prof. Dr.-Ing. G. Schäfer
http://www.tu-ilmenau.de/telematik/aup
Algorithmen und Programmierung WS 14/15
Übungsblatt 1
Abgabe am Mittwoch 29.10.2014 in der Vorlesung
Aufgabe 1 (Terme)
3 + 3 Punkte
Geben Sie den Wert der folgenden Terme an und notieren Sie mindestens 4 Zwischenschritte während der Auflösung.
(a) 5+ if (8 − 5 · 3 > 8 ∧ ¬false) ∨ 5 > 5 then 2 · 20 − 3 else 3 · 3 · 3 − 3 fi
(b) if 17 mod 2 = sign(3 − 8) then 7 + 2 = 72 else if 1 < 12 then false =
((2 + 4)/18 < 1) else odd(17 + 4) fi fi
Aufgabe 2 (Backus-Naur-Form)
4 Punkte
Geben Sie mittels BNF eine Syntax an, mit welcher sich Terme über {0, 1} erzeugen
lassen, die mit einer beliebigen Anzahl von n 0en beginnen, gefolgt von einer 1 und n
abschließenden 0en (Beispiel: 00000100000). Können Sie einen äquivalenten regulären
Ausdrück angeben?
Aufgabe 3 (Reguläre Ausdrücke)
3 + 2 + 2 + 3 Punkte
Geben Sie je einen regulären Ausdrück in der Notation der Vorlesung an, welcher
(a) alle rationalen Zahlen (dargestellt als Bruch oder Dezimalzahl)
(b) alle gültigen Uhrzeiten der Form hh:mm:ss (23 : 05 : 42)
(c) alle gültigen Uhrzeiten nach US Standard (12 statt 24 Stunden gefolgt von AM
oder PM )
(d) alle gültigen Datumsangaben der Form TT.MM.JJJJ (zur Vereinfachung dürfen Sie
davon ausgehen, dass der Februar immer 28 Tage hat)
matcht.
Bitte wenden!
2
Algorithmen und Programmierung WS 14/15
Aufgabe 4 (Türme von Hanoi)
Übungsblatt 1
2 Punkte
In der Vorlesung wurde Ihnen der rekursive Lösungsalgorithmus für das Türmen-vonHanoi-Problem vorgestellt.
(a) Wie viele Bewegungen müssen Sie durchführen, um einen Turm aus fünf Scheiben
vom Start zum Ziel zu bringen?
(b) Geben Sie eine allgemeine Formel für die Anzahl an Bewegungen für beliebig hohe
Türme an.
Aufgabe 5 (Rekursion)
2 + 4 + 2 Punkte
Ein beschränktes Maschinenmodell unterstütze als einige Rechenoperation auf Ganzzahlen die Addition add(x,y) (x, y ∈ Z).
(a) Definieren Sie in Pseudocode eine Methode mult(x,y) zur Multiplikation zweier
natürlicher Zahlen x und y unter Verwendung der Additionsfunktion. Geben Sie
sowohl eine rekursive als auch eine nicht-rekursive Variante an.
(b) Nutzen Sie mult(x,y) um die Funktion fact(n) zur Berechnung Fakultät von
n ∈ zu definieren.
N
(c) Wie oft wird die Addition bei der Berechnung von fact(5) ausgeführt, falls
mult(x,y) rekursiv definiert ist?
Herunterladen