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).