Java Blockkurs im Sommersemester 2014 Aufgabe 1 Distanz

Werbung
Universität Düsseldorf
Mathematisch-Naturwissenschaftliche Fakultät
Institut für Informatik
Tobias Witt
Java Blockkurs im Sommersemester 2014
Übungsblatt 1
Beachten Sie, dass sie die Aufgaben selber lösen sollten. Java-Interne Hilfsfunktionen und Klassen wie zum Beispiel Arrays sollten daher nicht verwendet
werden.
Aufgabe 1 Distanz
Implementieren Sie eine Methode int distance(int a, int b), die zwei Integer als Parameter bekommt und deren Abstand berechnet. Das Programm
soll die beiden Parameter als Kommandozeilen-Parameter entgegennehmen.
$ java Distance 42 5
#>> 37
$ java Distance 5 11
#>> 6
Aufgabe 2 Kreuzprodukt
Implementieren Sie eine Methode int[] crossproduct(int[] a, int[] b),
die zwei Vektoren als Integer-Arrays als Parameter bekommt und deren Kreuzprodukt berechnet. Die Übergabe der Parameter an das Programm sollen Sie
sich selbst überlegen. Denkbar wären auch hier Kommandozeilenparameter:
$ java CrossProduct 1 -5 2 2 0 3
# (-15 1 10)
Aufgabe 3 String-Suche
Implementieren Sie eine Methode int search(String[] array, String string),
die einen String-Array und einen String bekommt und diesen String im Array
suchen soll. Wenn der String nicht gefunden wird, soll die Methode -1 zurückgeben.
$ java Search foo bar baz biz buzz baz
# 2
1
$ java Search foo bar baz biz buzz bogus
# -1
Aufgabe 4 Palindrom
Implementieren Sie eine Methode boolean isPalindrom(String string), die
einen String als Parameter bekommt und prüft, ob dieser String ein Palindrom1
ist.
$
#
$
#
java Palindrom otto
"otto" ist ein Palindrom
java Palindrom birne
"birne" ist kein Palindrom
Aufgabe 5 Euklidischer Algorithmus
Implementieren Sie eine Methode int ggT(int a, int b), die mit Hilfe des
Euklidischen Algorithmus den größten gemeinsamen Teiler zweier Zahlen bestimmt.
$
#
$
#
java GGT 8 12
4
java GGT 16 14
2
Aufgabe 6 Nullstellen
Implementieren Sie eine Methode double newton(int x), die ausgehend von
einem Startwert versucht mittels des Newton-Verfahrens eine Nullstelle der
Funktion
f ( x ) = x4 + 3 ∗ x3 + 0.5 ∗ x − 1
zu bestimmen.
$ java Newton 1
# 0.5826573119800097
Bonus:
• Finden Sie alle Nullstellen.
• Finden Sie Nullstellen für beliebige Funktionen. Die Koeffizienten für das
Polynom können auf der Kommandozeile angegeben werden.
$ java Newton 1 3 0 0.5 -1 1
# 0.5826573119800097
1 http://de.wikipedia.org/wiki/Palindrom
2
Aufgabe 7 Arrays
In dieser Aufgabe ist es wichtig, dass der Original-Array nicht verändert wird.
a. Implementieren Sie eine Methode int[] reverse(int[] array), die einen
Array aus Integern als Parameter nimmt und einen Array in umgekehrter Element-Reihenfolge zurückgibt.
b. Implementierne Sie eine Methode int[] filterEven(int[] array), die
einen Array aus Integern als Parameter nimmt und einen Array mit allen
geraden Zahlen zurückgibt, oder einen leeren Array, falls es keine geraden Zahlen gibt.
Aufgabe 8 Bubblesort
Implementieren Sie eine Methode int[] bubblesort(int[] array), die einen
Array aus Integern als Parameter nimmt und eine sortierte Kopie zurückgibt.
Der implementierte Sortieralgorithmus soll Bubblesort sein.
Aufgabe 9 4 gewinnt
Implementieren Sie eine Methode boolean checkWin(char[][] board), die
einen zwei-Dimensionalen Array, der die Zeichen r und g enthält, als Parameter nimmt und feststellt, ob eine der beiden Zeichen 4 mal hintereinander
vertikal, horizontal oder diagonal enthalten sind.
Aufgabe 10 Arrays II
Implementieren Sie eine Methode void random(char a, char b, char c, char d),
die 4 chars als Parameter nimmt und diese in zufälliger Reihenfolge ausgibt.
a. Lösen Sie diese Aufgabe ohne die Verwendung eines Arrays
b. Lösen Sie diese Aufgabe unter Zuhilfenahme eines Arrays.
3
Herunterladen