Aufgabe 1 - Minimum Schreibe zwei Methoden und teste sie in der

Werbung
Aufgabe 1 - Minimum
Schreibe zwei Methoden und teste sie in der main-Funktion. Die erste Methode
soll das kleinste Element eines Feldes vom Typ double zurückgeben. Die zweite
Methode soll den Index des kleinsten Elements des Feldes zurückgeben.
Aufgabe 2 - ASCII-Tabelle
Gebe die ASCII-Tabelle aus, d.h. gebe zu jedem Wert von 0 bis 127 den char aus,
der diesem int-Wert entspricht.
Aufgabe 3 - Ratespiel
Schreibe ein Programm, das ein Ratespiel implementiert: Das Programm wählt eine
Zufallszahl zwischen 1 und 10 aus. Jetzt hat der Spieler drei Versuche. Sobald der
Spieler die richtige Zahl eingibt, gibt das Programm eine Meldung über den
Gewinn des Spiels aus und endet.
Das Programm soll “kalt“ ausgeben, wenn die eingegebene Zahl um 3 oder noch
weiter von der richtigen Zahl entfernt ist, es wird “warm“ ausgeben, wenn sie um 2
entfernt ist, und es wird “heiss“ ausgeben, wenn die Zahl um 1 entfernt ist. Zum
Beispiel:
Ich denke an eine Zahl zwischen 1 und 10. Du hast drei
Versuche, um die Zahl zu erraten.
Gebe eine Zahl ein:
1
kalt
3
warm
5
RICHTIG!
Du hast das Spiel gewonnen.
Aufgabe 4 - Permutationen
Schreibe eine Methode perm, welche für eine zufällige Zahl n (Tipp: Random),
welche zwischen 1 und 9 liegen soll, alle Permutationen der Zahlen 1 bis n ausgibt.
Verwende bitte weder Felder noch Strings! Beispiel n=5:
12345
23451
34512
45123
51234
Aufgabe 5 - PI
Die Zahl kann mit folgender unendlichen Reihe berechnet werden:
1 1 1 1
1
= limn−1− + - + … 
3 5 7 9
n
Schreibe ein Programm, welches für ein festes n die Zahl näherungsweise
berechnet.
Aufgabe 6 - reverse
Lese einen Satz von Kommandozeile ein und übergebe ihn an eine Methode
reverse.Diese speichert den Satz rückwärts auf einem anderen String und gibt
diesen zurück.
Aufgabe 7 - Capitals
Schreibe ein Programm, das den Anwender nach dem Vornamen und Nachnamen
fragt. Dieses den Vornamen so wie er eingegeben wurde und den Nachnamen in
Großbuchstaben ausgibt.
Geben Sie Ihren Namen ein:
Sherlock Holmes
Sherlock HOLMES
Dazu solltest du in der Dokumentation der String-Klasse nach geeigneten
Methoden suchen, die ggf. in dem Kurs nicht behandelt wurden:
• public char charAt(int index)
• public int indexOf( int c )
• public String substring( int startIndex ) bzw.
public String substring( int startIndex, int endIndex )
• public String toLowerCase() bzw.
public String toUpperCase()
Da diese Methoden eine sogenannte Ausnahme auslösen, muss die main()Methode wie folgt beginnen:
public static void main ( String[] args )
throws IOException, StringIndexOutOfBoundsException { ... }
Aufgabe 8 - Zeichen durch Zahlen darstellen
Schreibe eine Routine, die einen String übergeben bekommt und bestimmte
Buchstaben durch Zahlen ersetzt:
i=1, l=2, e=3, a=4, s=5, z=7, b=8, g=9, o=0
Der neue String soll anschließend in der main wieder ausgegeben werden. Bsp:
Gebe einen Satz ein: Egon hat ein knallrotes Gummiboot
Der Satz lautet: 390n h4t 31n kn422r0te5 9umm1800t
Aufgabe 9 - Klammerung
Implementieren eine Java-Methode, die für eine Zeichenkette überprüft, ob die dort
enthaltenen runden Klammern korrekt gesetzt sind. Das heißt: Für jede öffnende
Klammer ’(’ muss es eine nachfolgende schließende Klammer ’)’ geben. Es darf
keine Klammer geschlossen werden, wenn nicht die entsprechende Klammer
vorher geöffnet wurde. Zeichen außer den runden Klammern sollen ignoriert
werden.
Folgendes sind korrekt geklammerte Strings: “()“, “abc“, “(()(abc)( ()((def))))“.
Diese Strings sind fehlerhaft: “(()“, “)(“.
Die Methode soll einen booleschen Wert zurückgeben. In der main-Methode soll
entsprechend ausgegeben werden, ob der String korrekt oder fehlerhaft geklammert
ist.
Aufgabe 10 - Maximale Matrix-Summe
Gegeben sei eine quadratische Matrix aus positiven Ganzzahlen, z.B.
24
10
23
17
16
6
4
4
10
12
12
3
1
9
11
14
8
6
21
25
13
5
20
22
19
Schreibe nun ein (rekursives) Programm welches für eine einzulesende
Startposition die maximale Summe berechnet, die von dort erreicht werden kann.
Dabei muss der nächste Summand größer sein, als das aktuelle Feld und direkt an
dieses Feld in waagerechter oder senkrechter Richtung grenzen (nicht diagonal!).
Ausgegeben werden soll die maximale Summe, die erreicht werden kann:
Startposition? 1 1
Die maximale erreichbare Summe ist 39.
Die Zahl an der Stelle (1,1) ist 5. Von hier aus, ist sind die 6 und die 10 erreichbar,
da alle anderen Zahlen kleiner sind als 5. Für die 6 gibt es wiederum die Fälle 12
und 24, wobei von der 12 wiederum die 14 erreichbar ist. 14 hat keinen größeren
Nachbar, genauso wenig die 24. Sie bilden also das Ende einer Zahlenkette. Der
Zweig der von 5 über die Zahl 10 geht, endet in den Zahlen 23 bzw. 24. Insgesamt,
gibt es also drei Verzweigungen bzw. vier Ketten. Das Maximum der Summen
dieser Ketten ist
5+10+24=39
Hinweis: Um nicht umständlich auf den Rand der Matrix abzufragen, kann man die
Matrix hier auch um je eine Zeile oben, unten, rechts und links erweitern und diese
mit einer Zahl belegen welche niemals größer ist, als das aktuelle Feld (z.B. 0).
Herunterladen