Übungsblatt 08b |
PI-1 2008/09 |
Using (existing) Data Types |
Assignment #1:
Reverse Domäne (UE)
Schreiben Sie ein Java-Programm, welches von der Kommandozeile einen Domain-Namen
einliest und von diesem die reverse Domäne ausgibt.
Beispiel: die reverse Domäne von
informatik.hu-berlin.de ist
de.hu-berlin.informatik.
Hintergrund: In Java werden reverse Domänen häufig für die Bezeichnung von
Paketnamen verwendet (Bsp. com.sun.java.util).
Assignment #2: StrMirror-Klasse (PR 10 Punkte)
Eine gegebene Zeichenkette soll gespiegelt werden ("Beispiel" --> "leipsieB"). Hierzu ist eine geeignete Klasse StrMirror zu schreiben. Folgende Punkte sind dabei zu beachten:
Ihre Klasse sollte sich wie folgt verwenden lassen können:
StrMirror m = new StrMirror("Beispiel");
System.out.println(m.getString() + " --> " + m.mirror());
m.setString("Rekursion");
System.out.println(m.getString() + " --> " + m.mirrorR());
Hinweis: Auf der Klasse String sind eine Reihe von nützlichen Methoden definiert wie z.B. toCharArray() zur Umwandlung eines Strings in ein Character-Feld (char[]) (siehe http://java.sun.com/j2se/1.5.0/docs/api/)
Alle Klassen und Methoden sollen kommentiert werden!
Submission to Goya. Submit the file: StrMirror.java Goya.
Assignment #3: Value-Types and Reference-Types (UE)
Vergleichen Sie die folgenden Java-Methoden zum Vertauschen von zwei Zahlen (swap()) und erläutern Sie die unterschiedliche Wirkung.
class Tuple {
int a, b;
public Tuple(int a, int b) {
this.a = a;
this.b = b;
}
} public class Swap {
void swap(int a, int b) {
int c = a;
a = b;
b = c;
} void swap(Integer a, Integer b) {
Integer c = a;
a = b;
b = c;
} void swap2(Integer a, Integer b) {
int aa = a.intValue();
int bb = b.intValue();
a = aa;
b = bb;
} void swap(int[] a) {
int c = a[0];
a[0] = a[1];
a[1] = c;
} void swap2(int[] a) {
a[0] = a[1] - a[0];
a[1] = a[1] - a[0];
a[0] = a[1] + a[0];
} void swap3(int[] a) {
a[0] = a[0] ^ a[1];
a[1] = a[0] ^ a[1];
a[0] = a[0] ^ a[1];
} void swap(Tuple r) {
int c = r.a;
r.a = r.b;
r.b = c;
}
}