Algorithmen und Programmierung II
SS 2002 |
Dr. Hannes Federrath |
Übung 2 |
Natalie Ardet |
Abgabe bis zum Fr. 10.05.02 |
|
Die Lösung der Aufgaben und die Abgabe der Lösungen erfolgt in
Zweiergruppen!
Hinweis: Benutze die Ressourcen der ALP2 Webseite.
Aufgabe 1 (5 P.)
Gegeben seien folgende Java-Deklarationen:
- int x;
- int y;
- char z;
- long w;
Welche der folgenden Java-Ausdrücke ist unter den o.g. Deklarationen
korrekt? Wenn der Ausdruck nicht korrekt ist, was ist der Fehler und gibt es
eine Typdeklaration, mit der er korrekt ist?
- w = x / (y+1)
- i = 25L
- x = x+1
- 17 % 3
- y += 1
- 2 * (x+y) - (z/73)
- x = y = z = 0
- x = y + (z +=w)
- 6++
- (x+y)++
Aufgabe 2 (4 P.)
Schreibe folgende zwei Beispiele aus der Vorlesung so um, dass diese keine
Sprunganweisungen mehr beinhalten, ihre Funktionalität jedoch erhalten bleibt.
- int i=0;
while (i<10) {
if (i==5) {
i++;
continue;
}
System.out.println(" "+i);
i++;
}
System.out.println();
- weiter: {
System.out.println("Schleife beginnt");
for (int i=0; i<10;i++) {
if (i==5) break weiter;
System.out.print(" "+i);
}
System.out.println("Schleife beendet");
}
System.out.println("Ende");
Aufgabe 3 (4 P.)
Die Fibonacci-Zahlen sind eine Folge natürlicher Zahlen, bei der jede Zahl
die Summe der beiden vorangegangenen ist. Die Folge beginnt mit 1, 1,
2, 3, 5, 8, 13 und setzt sich so weiter fort.
- Entwerfe einen Algorithmus zur Berechnung der Fibonacci-Zahlen.
Hinweis: Die Darstellung erfolgt in Pseudo-Code (analog zu
Übungsblatt 1, Aufgabe 3).
- Implementiere den Algorithmus aus (1) als nicht terminierendes JAVA-Programm.
Aufgabe 4 (4 P.)
Die imperative Programmierung unterscheidet zwei Arten von Iterationen:
- Die Zählschleife: Eine Repetition, in der bereits vor Beginn der
Schleifenausführung klar ist, wie oft der Schleifenkörper insgesamt
durchlaufen werden muss. Eine Laufvariable nimmt nacheinander eine
vorgegebene Anzahl von Werten an, die bestimmt werden durch einen
Anfangswert, eine Schrittweite (meistens 1) und einen Endwert.
Es folgt ein typisches Beispiel einer Zählschleife aus der
Programmiersprache ADA. Der Schleifenkörper wird hier 4 Mal durchlaufen:
N:=4; // Festlegung des Endwerts
for I in 1 .. N loop // I ist die Laufvariable
...
N:=10; // Änderung des Endwerts N
end loop;
- Die bedingte Schleife: Die Bewertung eines Boole'schen Ausdrucks bestimmt
ob der Schleifenkörper durchlaufen wird. Zwei Beispiele aus der Programmiersprache PASCAL:
WHILE durst DO bier_trinken();
REPEAT kaufen() UNTIL geld=0;
Die Programmiersprache Java bietet eine Iterationsmöglichkeit mit dem
Schlüsselwort "for".
Handelt es sich um eine Zählschleife? Hinweis: Eine Argumentation wird hier
erwartet!
03.06.2002