• Keine Ergebnisse gefunden

¨Ubungsblatt 1 Ausgabe:

N/A
N/A
Protected

Academic year: 2021

Aktie "¨Ubungsblatt 1 Ausgabe:"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Informatik Bachelor 1. Semester WS 2016/17 Prof. Dr. Wolfgang Schramm Algorithmen und Datenstrukturen (ADS)

Ubungsblatt 1 ¨

Ausgabe: 26.10.2016

Abgabe: 3.11.2016 (23:50 Uhr)

Aufgabe 1: Eigenschaften von Algorithmen 25 Punkte

Ein Bonbonglas ist mit vielen Lakritzeschnecken und Gummib¨archen gef¨ullt. Außerdem liegt neben dem Glas eine ”Wundert¨ute”, die unersch¨opflich viele Lakritzeschnecken enth¨alt. Der folgende Vorgang soll nun solange ausgef¨uhrt werden, bis er sich nicht mehr wiederholen l¨asst:

(1) Entnehmen Sie zwei beliebige S¨ußigkeiten aus dem Glas.

(2) Falls beide die gleiche Geschmacksrichtung haben, essen Sie sie auf und f¨ullen eine Lakritzeschnecke aus der nebenstehenden T¨ute in das Glas.

(3) Haben Sie eine Lakritzeschnecke und ein Gummib¨archen gezogen, d¨urfen Sie nur die Lakritzeschnecke naschen. Das Gummib¨archen m¨ussen Sie wieder in das Glas zur¨ucklegen.

Folgende Fragen dr¨angen sich auf bzw. sind von Ihnen zu beantworten:

a) Terminiert dieser Vorgang?

b) Wieviele S¨ußigkeiten verbleiben im Glas?

c) Ist der Vorgang determiniert oder deterministisch? Eine einfache Antwort gen¨ugt nicht! Sie m¨ussen je- weils eine stichhaltige Begr¨undung angeben. Hinweis: Ich empfehle Ihnen, bei praktischen Untersuchun- gen des Problems die Werte f¨ur n (Anzahl der Gummib¨archen) und m (Anzahl der Lakritzeschnecken) nicht zu groß zu w¨ahlen, da u.a. wegen des S¨ußholzanteils in Lakritze eine Gallenkolik wahrscheinlich ist und das L¨osen der Aufgabe erheblich beeintr¨achtigt. [Die Aufgabe stammt von Prof. Dumke, Uni Magdeburg].

Hinweis:Einfache Antworten, etwa in Form von Behauptungen, gelten nicht. Jede Antwort muss formal sauber begr¨undet werden!

Aufgabe 2: Tic Tac Toe 20 Punkte

Tic Tac Toe ist ein Spiel f¨ur zwei Personen, die in einem drei-mal-drei großen Spielfeld abwechselnd eine Marke – typischerweise

”Kreuz“ und

”Kreis“ – setzen. Gewonnen hat der Spieler, der zuerst drei Marken in einer Linie – senkrecht, waagrecht oder diagonal – gesetzt hat.

Schreiben Sie eine FunktiongewinnerIst, die f¨ur eine gegebene Spielsituation ¨uberpr¨uft, ob es einen Sieger gibt und ggf. wer der Sieger ist. M¨ogliche Ergebnisse sind:

• ”Kreuz“, falls der Kreuze setzende Spieler gewonnen hat, d.h. es gibt genau eine Linie von drei Marken, n¨amlich eine mit drei Kreuzen (z.B. siehe unten mittleres K¨astchen),

• ”Kreis“, analog,

• ”none“, falls es keinen Gewinner gibt, d.h es gibt noch keine Linie von drei Marken (z.B. siehe unten linkes K¨astchen), oder es gibt mehr als eine Linie von drei Marken (von einem oder verschiedenen Spielern) (z.B. siehe unten rechtes K¨astchen).

X X O

O

X

O X O

X O

O X X

O O O

O X X

1

(2)

Schreiben Sie eine Funktion gewinnerIst in Pseudocode, die f¨ur ein mit 9 oder weniger Marken belegtem Spielfeld bestimmt, ob es einen Gewinner gibt, und falls ja, wer gewonnen hat.

Hinweise

Ihre Funktion soll in folgendem Pseudocode-St¨uck verwendet werden k¨onnen:

lese Spielfeld;

if gewinnerIst(Spielfeld) = Kreis then

schreibe "Gewinner ist Kreis"

else if gewinnerIst(Spielfeld) = Kreuz then

schreibe "Gewinner ist Kreuz";

else

schreibe "Es gibt keinen Gewinner";

fi fi

Das Spielfeld besteht aus 9 Feldern, die in 3 Reihen oder in 3 Spalten gruppiert werden k¨onnen, die jeweils aus 3 Feldern bestehen. Entscheiden Sie sich f¨ur eine der beiden M¨oglichkeiten, d.h. Sie k¨onnen nicht einmal reihenweise, einmal spaltenweise arbeiten (Falls Sie reihenweise arbeiten: was ist dann eine Spalte? Offensichtlich enth¨alt sie aus jeder der drei Reihen ein Feld.)

Sie k¨onnen eine Funktion

funct enthaelt (Feld, Marke) returns boolean

nutzen, die true liefert, falls die Marke (d.h. Kreuz oder Kreis) sich auf dem Feld befindet – andere Funktionen zum ¨Uberpr¨ufen des Inhalts des Spielfeldes k¨onnen Sie nicht als bekannt voraussetzen.

Aufgabe 3: Rekursiver Algorithmus 15 Punkte

Die Quersumme einer nat¨urlichen Zahl kann rekursiv definiert werden durch:

a) Die Quersumme einer Ziffer ist der Wert der Ziffer.

b) Die Quersumme einer mehrstelligen Zahl ist der Wert der letzten Ziffer plus die Quersumme der Zahl, die man erh¨alt, wenn man die letzte Ziffer abschneidet.

Entwickeln Sie einen rekursiven Algorithmus. Verwenden Sie explizit das aus der Vorlesung bekannte Sche- ma (dazu m¨ussen Sie das Schema auch, angewandt auf die konkrete Aufgabenstellung, hinschreiben) zur Entwicklung rekursiver Funktionen, und notieren Sie den Algorithmus als Funktion in Pseudocode.

Hinweise:

• Die Funktion hat keine Ausgabe (

”drucke. . . “), und liefert die Quersumme als Ergebnis zur¨uck (return).

• Sie k¨onnen einfache Funktionen zum Manipulieren von Zahlen verwenden, z.B.letzte-Ziffer: liefert die letzte Ziffer, restlicheZiffern: liefert die Zahl, die nach dem Abschneiden der letzten Ziffer entsteht.

letzteZiffer(1459) = 9 restlicheZiffern(1459)=145

Aufgabe 4: Iteration und Rekursion 25 Punkte

Die Multiplikation zweier Nat¨urlicher Zahlen kann folgendermaßen definiert werden:

a·b=

( a+ (a·(b−1)), f alls b >1

a, f alls b= 1

Entwickeln Sie zwei Funktionen in Pseudocode f¨ur die Multiplikation, die ohne die Multiplikations-Operation auskommen:

a) Schreiben Sie einerekursiveFunktion in Pseudocode f¨ur diese Art der Multiplikation; nummerie- ren Sie die Zeilen der Funktion durch.

2

(3)

b) Notieren Sie den Ablauf f¨ur die Multiplikation von 3 und 4 in einem Protokoll. Das Protokoll besteht aus Zeilen, in denen Sie notieren

- die laufende Nummer des Aufrufes, - die Zeilennummer,

- die Operation, die ausgef¨uhrt wird (wobei Variable durch deren Wert ersetzt werden) mit derem Ergebnis,

- ein Hinweis, wo das Ergebnis weiter verwendet wird (z.B. textuell durch Aufrufnummer/Zei- lennummer, oder graphisch durch einen Pfeil).

- Notieren Sie nur die Zeilen f¨ur die rekursive oder terminierende Verarbeitung.

c) Schreiben Sie eineiterativeFunktion in Pseudocode f¨ur diese Art der Multiplikation; nummerieren Sie die Zeilen der Funktion durch.

d) Notieren Sie den Ablauf f¨ur die Multiplikation von 3 und 4 in einem Protokoll. Das Protokoll besteht aus Spalten (eine Spalte f¨ur die Zeilennummer und je eine Spalte je Variable, die in Ihrem Algorithmus vorkommt). Legen Sie immer eine neue Zeile an, wenn sich der Wert einer Variablen

¨andert. Markieren Sie die

”Eingaben“ und

”Ausgaben“ Ihrer Funktion.

Hinweise zub)

- laufende Nummer des Aufrufes: der Aufruf

”mult(3, 4)“ erh¨alt die Nr. 1; wird bei der Abarbeitung mult rekursiv aufgerufen, erh¨alt dieser die Nr. 2; etc.

- Notation der Operation: steht in ihrem Programm

”f(a,b)“ (Aufruf der Funktion f), so schreiben Sie in dem Protokoll - falls a den Wert 5, b den Wert 11 enth¨alt –

”f(5,11)“

- Es empfiehlt sich mit Einr¨uckungen zu arbeiten, um Ereignisse in verschiedenen Auf-rufen der Funktion zu unterscheiden (die Zeilennummer ist ja identisch!).

Hinweise zud)

- Falls einer Variablen noch kein Wert zugewiesen wurde, bleibt das Feld leer.

- Wird der Wert einer Variablen nicht ge¨andert, ¨ubernehmen Sie den Wert der vorhergehenden Zeile.

Beachten Sie: ein Ausdruck

”a + b“ ist nur definiert, falls a und b Zahlen in Ihrem Protokoll zugeordnet sind.

3

Referenzen

ÄHNLICHE DOKUMENTE

Einfühlsam beraten Auf die Frage, was PTA und Apothe- ker*innen für ihre transidenten Kund*innen tun können, über- legt Monro: „Wenn jemand ge- rade erst mit der Transition

Was zählt sind nicht die Pro- zentzahlen des Rabatts oder das wohl- klingende Service-Paket, sondern was beim genauen Durchrechnen tatsächlich an Vergünstigung herauskommt«, so

1) Aus der Sicht des Regierungsrates kann nicht von einer chaotischen Situation ge- sprochen werden. Im Berner Jura wie in den Kantonen Jura und Neuenburg sind die

Die amerikanischen Streitkräfte scheinen bei ihren Einsät- zen im Jemen oder auch in Pakistan recht allgemeine Kriterien entwickelt zu haben: Wenn sich jemand im Kampfgebiet

Die nationale rüstungswirtschaft- liche Begründung: Exporte von Waffen, Waffenkomponenten oder sonstigen Rüstungsgütern sind ein wichtiges Ins- trument, um aus sicherheits- und

Wenn weder Anpassung an die amerikanische Politik noch Gegen- machtbildung als Grundlagen einer bitter notwendigen europäischen Au- ßenpolitik durchsetzbar sind, dann kann

Die Stadt hat einen neuen Auftritt, so dass Singen hier gewinnen kann, was die neue Hegaustraße ganz deutlich zeigt«, zeigt sich Alexander Kupprion von Sport Mül- ler

Fazit: Rohstoffbasierte Entwicklung ist möglich, bleibt aber auch in der heutigen Zeit eine beson- dere Herausforderung für Entwicklungsländer. Hieraus ergibt sich auch eine Agenda