Prof. Dr. R. Schrader SS 2005 Katja Korherr
1. Übung zur Vorlesung Informatik I Abgabe: 22.04. bis 13.00 Uhr Besprechung: 25.04. bis 29.04.
in den Übungsgruppen
Es sind alle Aufgaben schriftlich vorzubereiten. Die durch einen Stern(?)gekenn- zeichneten Aufgaben sind außerdem spätestens am Freitag, den 22.04. bis 13.00 Uhr im Briefkasten des ZAIK, Weyertal 80, abzugeben. Diese werden von den Übungsleitern, denen Sie zugeteilt wurden, korrigiert. In der darauffolgenden Woche (Montag 25.04 bis Freitag 29.04) werden dann alle Aufgaben in den Übungs- stunden besprochen.
Wenn Sie die Aufgaben gemeinsam mit einem Kommilitonen bearbeiten, der auch in Ihrer Übungsgruppe ist, dann dürfen Sie die Aufgaben auch zu zweit abgeben.
Die Einteilung der Übungsgruppen finden Sie ab Montag, den 18.04. auf unserer Internetseite. Wenn Sie die Übungsgruppe wechseln möchten, dann müssen Sie in der entsprechenden anderen Gruppe einen Tauschpartner finden. Außerdem müssen beide Übungsleiter einverstanden sein.
Bitte schreiben Sie den Namen Ihres Übungsleiters sowie den Tag und die Uhrzeit Ihrer Übungsgruppe rechts obenauf Ihr Übungsblatt. Nur so können wir sicher- stellen, dass Ihre Lösungen auch bei Ihrem Übungsleiter ankommen.
Aufgabe 1:
Betrachten Sie den folgenden Algorithmus.
(1) forj= 2tondo (2) key=A[j]
(3) i= 1
(4) while(i < j & A[i] <key) (5) i=i+ 1
endwhile (6) while(i≤j) (7) puffer=A[i]
(8) A[i] =key
(9) key=puffer (10) i=i+ 1
endwhile enddo
1
a) Was macht der Algorithmus?
b) Wie sieht eine Eingabefolge im besten Fall aus und wie im schlechtesten Fall?
Aufgabe 2: (?)
Zeigen Sie durch Vollständige Induktion a)Pn
i=1
i= n(n2+1)
b) Pn
i=0
xi = 1−1−xn+1x (x6= 1)
(4 Punkte)
Aufgabe 3: (?)
Betrachten Sie die Fibonacci-Reihe:
1 1 2 3 5 8 13 21 31 . . .
Jede Zahl nach der zweiten ist die Summe der beiden Zahlen vor ihr.
a) Formulieren Sie einen Algorithmus, der in ein Array der Längenjeweils an die i-te Stelle diei-te Fibonaccizahl schreibt.
b) Führen Sie eine Laufzeitanalyse für Ihren Algorithmus durch. Dabei dürfen Sie davon ausgehen, dass jeder Programmbefehl die konstante Zeitc= 1benötigt.
c) Beweisen Sie die in b) errechnete Laufzeit mittels Vollständiger Induktion.
(6 Punkte)
2