Aufgabe 8 - Felder Belege ein Feld mit 10 beliebigen Zahlen (z.B. 1,2,3,4,5,6,7,8,9,0). a) Gebe diese Zahlen rückwärts aus. b) Verschiebe nun jede Zahl um 3 Stellen nach rechts, wobei die letzten drei Zahlen des Feldes wieder an den Anfang geschrieben werden: 8,9,0,1,2,3,4,5,6,7. c) Erweitere das Programm noch durch die Möglichkeit, dass der Benutzer wählen kann, um wieviele Felder die Zahlen verschoben werden sollen und ob die Zahlen nach rechts oder links (rechts=1, links=0) verschoben werden sollen. Aufgabe 7 - Teiler Schreibe ein Programm, welches für jede Zahl von 17 bis 42 ausgibt, durch welchen Teiler sie ohne Rest teilbar ist. Verwende als Teiler nur die Zahlen 2, 3 und 5. 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 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 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). Aufgabe 9 - Fakultät Schreibe ein Programm, welches für ein positives n < 17 die Fakultät berechnet: n! = n · (n−1) · (n−2) · . . . · 1 Es gilt 0! = 1 und 1! = 1. Negative Fakultäten sind nicht definiert. Finde eine iterative und eine rekursive Lösung.