Ubungsblatt 1

Werbung
Algorithmen und Programmierung
Fachgebiet Telematik/Rechnernetze
WS 12/13
Prof. Dr.-Ing. Günter Schäfer
Übungsblatt 1
Aufgabe 1
2 Punkte
Lösen Sie die folgenden zwei Terme auf. Bitte mindestens je drei Zwischenschritte
angeben.
2 + if (2 > 1) then 5 · 8 else 7 · (3 + 35 mod 5) fi
3−if true∧false∨¬true then 5·8/10 else if false∨true∧true then 3+27/10 else 2 fi fi
Aufgabe 2
2 Punkte
Skizzieren Sie alle nicht-deterministischen Möglichkeiten (unter Beachtung der Vorrangregeln), die folgende Formel schrittweise auszuwerten:
4 · (25 + 3 · (4 + 5)) − 314 + 4 · 37
Aufgabe 3
6 Punkte
Ein Bonbonglas ist mit Lakritz und Karamell-Bonbons gefüllt. Außerdem liegt neben
dem Glas eine ,,Wundertüte”, die mit enorm viel Lakritz gefüllt ist. Der folgende
Vorgang soll nun solange ausgeführt werden, bis nur noch eine einzelne Süßigkeit im
Glas übrig ist:
– Entnehmen Sie zwei beliebige Süßigkeiten aus dem Glas.
– Falls beide Bonbons die gleiche Geschmacksrichtung haben, essen Sie beide auf
und füllen ein Lakritz aus der nebenstehenden Tüte in das Glas.
– Haben Sie ein Lakritz und ein Karamell gezogen, dürfen Sie nur das Lakritz
naschen. Das Karamell-Bonbon müssen Sie wieder in das Glas zurücklegen.
a) Terminiert dieser Vorgang? Wenn ja, welche Aussage kann allgemein über die
letzte im Glas zurückbleibende Süßigkeit getroffen werden?
b) Nehmen Sie an, es existieren N Lakritz und kein Karamellbonbon im Glas; Wie
viele Lakritz müssen Sie essen, bis das Glas leer ist oder nichts mehr gegessen
werden kann?
c) Gesetzt den Fall, es befinden sich zu Anfang des Versuchs gleich viel Lakritz
und Karamellbonbons im Glas: können Sie eine Aussage dazu treffen, wie häufig
Sie eines der beiden essen müssen? Falls nicht, können Sie angeben, wieviele Sie
mindestens und wieviele Sie höchstens essen müssen?
Hinweis: Wir empfehlen, eine genügend große Anzahl von Karamell- und LakritzBonbons zur praktischen Demonstration Ihrer Lösung mitzubringen. Eventuell kann
man auch gelbe und grüne Gummibärchen nutzen (je nach Geschmack!).
Aufgabe 4
2 Punkte
Bitte geben Sie einen rekursiven Algorithmus für die Berechnung von n! an.
Aufgabe 5
2 Punkte
In der Vorlesung ist Ihnen die rekursive Lösung zu den Türmen von Hanoi vorgestellt
worden. Wie viele Bewegungen müssen Sie durchführen, um einen Turm aus fünf
Scheiben vom Start zum Ziel zu bringen?
Können Sie eine Formel für beliebig hohe Türme angeben?
Aufgabe 6
3 Punkte
In der Vorlesung wurde Ihnen beigebracht, wie Kaffee gekocht wird.
a) Zeichnen Sie ein Struktogramm des in der Vorlesung angegebenen Algorithmus
zum Kaffeekochen.
b) Verfeinern Sie das Struktogramm weiter um die Beschaffung eines sauberen
Löffels (wer im Wohnheim wohnt, wird zunächst abwaschen müssen, als gut
erzogener Student waschen Sie solange ab bis kein Geschirr übrig ist!) und
führen Sie die Bedingung ein, dass in dem Kaffeeglas noch Pulver ist. Ist das
nicht der Fall, so leihen Sie Kaffee vom Nachbarn (der hat immer welchen).
c) Schreiben Sie den entstandenen Algorithmus als Pseudocode auf. Bitte achten
Sie dabei darauf, eine gute Lesbarkeit durch einrücken der einzelnen Programmteile sicher zu stellen (siehe Vorlesungsskript).
Aufgabe 7
3 Punkte
Entwerfen Sie ein Pseudocode-Programm, das drei ganze Zahlen einliest und verarbeitet. Die Summe, das Produkt, das arithmetische Mittel und die größte der drei
Zahlen sind auszugeben.
Herunterladen