Ü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;
  }
}