Einführung Informatik/Algorithmen und Datenstrukturen

Prof. Dr. Reiner Dumke

WS 00/01

Sören Balko, Ilona Blümel, Dr. Martina Engelke, Markus Feldbach, Bert Freudenberg, Niels Grabe, Dr. Reinhard Köppe, Uwe Scholz, Nadine Schulze, Dr. Fritz Zbrog

1. Übungsblatt

Aufgabe 1

Skizzieren Sie verschiedene nicht-deterministische Möglichkeiten (unter Beachtung der Vorrangregeln), die folgende Formel schrittweise auszuwerten:

2 * (25 + 3 * (4 + 5)) - 314 - 4 * 63

Aufgabe 2

Ein Bonbonglas ist mit mit vielen Lakritzeschnecken und Gummibärchen gefüllt. Außerdem liegt neben dem Glas eine "Wundertüte", die unerschöpflich viele Lakritzeschnecken enthält. Der folgende Vorgang soll nun solange ausgeführt werden, bis er sich nicht mehr wiederholen läßt:

Folgende Fragen drängen sich auf:
  1. Terminiert dieser Vorgang?
  2. Wieviel Süßigkeiten verbleiben im Glas?
  3. Ist der Vorgang determiniert oder deterministisch?
Hinweis: Wir empfehlen Ihnen, bei praktischen Untersuchungen des Problems die Werte für n (Anzahl der Gummibärchen) und m (Anzahl der Lakritzeschnecken) nicht zu groß zu wählen, da eine Magenverstimmung das Lösen der Aufgabe erheblich beeinträchtigt.

Aufgabe 3

Formulieren Sie einen (intuitiven) terminierenden, deterministischen Algorithmus für die Rechenoperation Addition über den natürlichen Zahlen  = {0, 1, 2, 3, ...}. Die natürlichen Zahlen sollen als Dezimalzahlen dargestellt werden.

Bei der Addition zweier natürlicher Zahlen x, y  mit dem Ergebnis (z = x + y)  dürfen nur die elementaren Operationen Erhöhung und Verminderung einer natürlichen Zahl um Eins (Inkrement und Dekrement) und die Vergleichsoperation '=' verwendet werden.

Machen Sie plausibel, daß Ihr Algorithmus für alle erlaubten Werte terminiert. Erläutern Sie den Algorithmus am Beispiel Ihrer Wahl.

Aufgabe 4

Formulieren Sie einen weiteren (intuitiven) terminierenden, deterministischen Algorithmus für die  Rechenoperation Division über den natürlichen Zahlen  = {0, 1, 2, 3, ...}. Die natürlichen Zahlen sollen als Dezimalzahlen dargestellt werden.

Die Division zweier natürlicher Zahlen x, y , y  0 liefert das ganzzahlige Ergebnis z und den ganzzahligen Rest, so daß gilt  x = z * y + r mit r < y. Zulässige Elementaroperationen sind die Addition und Subtraktion zweier beliebiger natürlicher Zahlen, sowie die Vergleichsoperation "".

Machen Sie plausibel, daß Ihr Algorithmus für alle erlaubten Werte terminiert. Erläutern Sie den Algorithmus am Beispiel Ihrer Wahl.