Knobelstunde mit Java
Knobeln und Rätseln mit Java
Im Zuge meines Tutoriums für Erstsemestler habe ich ein paar kleine Aufgaben erstellt. Es wird ein Quellcode gezeigt der eine Ausgabe bzw. etwas macht und die Studenten sollen sagen was herauskommt. Selbstverständlich ohne das Programm einzugeben und auszuführen. Verliert natürlich dann den Reiz.
Der Hintergedanke dabei war alles Nötige einzubauen, was sie bis dahin in der Vorlesung behandelt hatten. Sprich: Casting, Typen, Schleifen und Arrays.
Wenn man natürlich sich mal C-Code anschaut mit Pointer etc. ist das ein Kinderspiel
Um die Ecke gedacht.
char[] output = { 'Q', 'S', 'X', 'K', 'A', 'M', 'S', 'B', 'T', 'T', 'D', 'W' };
for (int i = output.length - 2, k = 1; i > -1; i -= 2, k++)
System.out.println((char) (output[i] + k - 4));
Das einzig schwere hier ist wohl der Cast auf (char) aber mit ein bisschen Nachdenken sollte das machbar sein.
Arrays, Arrays
Noch ein kleines für 2-dimensionale Arrays und dem Konditionaloperator, aber sonst wärs ja langweilig.
String[][] out = { { "so", "die", "einfach", "net" },
{ "Arbeit", "Programmierung", "ja", "nix" },
{ "Wörter", "die", "Zeichen", "Arrays" },
{ "machen", "Arbeit", "erleichtern", "hier" } };
for (int i = (int) (Math.PI - 1), j = 3; j > -1; i++, j--) {
System.out.println(out[i][j]);
i = i == 3 ? -1 : i;
}
Operator-Wirrwarr
Bei dieser Aufgabe sollen die Variablenwerte nach jeder Codezeile angegeben werden. Einfach um sich die Präzedenzen und Operatoren zu verinnerlichen.
int a, b, c; double d = 5.0; c = b = a = 9 / 2; b += ++c; d = (a / (c + 1)) / c; d = b-- % --c % 2 / 2.0; a = (int) ((double) (a / d)*4d);
Ich werde wohl im nächster Zeit ein paar weitere solche kleinen Aufgaben stellen. Lösung kann man sich natürlich selbst ausgeben lassen.
Hoffe es hat euch gefallen. Feedback wäre nicht schlecht.
November 17th, 2009
Muhahaha alles gelöst