Eine Methode zur Berechnung des Mittelwertes ist schnell implementiert. Man schreibt:
double avg( double[] array, int len ) { double sum = 0.0; for ( int i = 0; i < len; i++ ) sum += array[ i ]; return sum / len; }
Leider funktioniert sie nicht immer. Warum nicht?
Schreibe eine Klassenmethode reverse()
, die ein gegebenes Feld umdreht,
d. h., dass das erste Element nach der Operation hinten steht und das letzte Element
steht vorne.
public static void reverse( double[] array ) { if ( array == null ) return; }
Eine Liste von Strings soll in eine Liste von Ganzzahlen (int) konvertiert. werden. Diese Arbeit soll eine Klassenmethode erledigen:
public static int[] toInts( String[] array ) { }
Aufrufen kann man die Methode etwa wie folgt:
String[] numbersAsString = { "1", "234", "333" }; int[] numbers = toInts( numbersAsString );
Ein mathematischer Ausdruck kann aus Zahlen und Operatoren bestehen. 1
- 2 * 3 / 4
ist ein Beispiel dafür. Wenn dieser Ausdruck vorgelesen
werden soll, dann wird ein Computer Folgendes sagen: "Eins minus zwei mal drei
durch vier". Schreibe eine Methode readTerm(char[] term)
mit Feldoperationen, die
die Zeichenkette "vorliest". Um es einfach zu machen, beschränken wir uns die Zahlen
auf 0..9.
Gegeben ist eine Menge von
java.awt.Point
-Objekten
in einem Feld points
:
Point[] points = { new Point(10, 20), new Point(12, 2), new Point(44, 4) };
double minDist(Point[] points, int size)
aus, die den Abstand eines Punktes zurückliefert, der den kleinsten Abstand
zum Nullpunkt besitzt? Point
ist, also der
Punkt mit dem kleinsten Abstand zurückgegeben werden soll? Eine nette Hilfsklasse Arrays
bietet an, ein Feld zu sortieren.
Teste dies an der Menge mit den Zufallszahlen. Beobachte die Signaturen der Methode
sort()
. Welche Typen werden unterstützt?
Baue ein Fließkomma-Feld mit zehn Elementen auf. Fülle es mit Zufallszahlen,
die sich mit random()
aus
java.lang.Math
erzeugen lassen. Gib anschließend das Feld auf dem Bildschirm aus. Sortiere das
Feld.
Kann die sort()
-Methode wirklich alles ohne Weiteres sortieren?
Wo könnte ein Problem liegen?
Teste jeweils die statischen Funktionen toString()
und deepToString()
der Klasse
Arrays
an folgenden Feldern:
Object[] o = { "Eins", "Zwei", "Polizei", new int[]{1, 2, 3} }; Object[] p = { "Eins", "Zwei", "Polizei", new int[]{1, 2, 3} };
Vergleiche auch die statischen Funktionen equals()
und deepEquals()
.
Schreibe eine Methode isAnagramm(String s1, String s2)
, um zu testen,
ob zwei Zeichenketten Anagramme sind. In einem Anagramm kommen dieselben Zeichen
möglicherweise in anderer Reihenfolge vor. Zum Beispiel stellen folgende Zeilen
Anagramme dar:
Mildred Smedley
slid remedy meld
Gebe jeweils die Eingabezeilen und eine der folgenden Meldungen aus: "Ja, obige Zeilen sind Anagramme" oder "Nein, obige Zeilen sind keine Anagramme." Man kann davon ausgehen, dass die Zeilen keine Groß- und Kleinbuchstaben sowie Leerzeichen enthalten.
Optional: Bei dem Vergleich der Eingabezeilen sollen Leerzeichen ignoriert und Groß- und Kleinbuchstaben als gleich betrachtet werden.