Die Aufgabe
Aufgabe 6
a) Ermitteln und notieren Sie die Ausgabe des folgenden Programms A6a und erläutern Sie, wie es dazu kommt!
class A6a { public static void main(String[] args) { int zahl = 3; StringBuilder ergebnis = new StringBuilder(); switch (zahl) { case 1: ergebnis.append("Eins"); case 2: ergebnis.append("Zwei"); case 3: ergebnis.append("Drei"); case 4: ergebnis.append("Vier"); default: ergebnis.append("Default"); } System.out.println(ergebnis); }}b) Ermitteln Sie – nachvollziehbar durch einen Schreibtischtest – die Anzahl der Durchläufe durch die im folgenden Programm A6b enthaltene While-Schleife, wenn die Zahl 2025 eingegeben wird!
class A6b { public static void main (String[ ] args) { int x = In.readInt(); int y = 0; while (x!=0) { y += x%10; x = x / 10; } Out.println("Result = " + y); }}c) Welche Ausgabe erzeugt das Programm A6b bei Eingabe der Zahl 1234?
Beide Programme sind fertig vorgegeben. Wir schreiben kein Programm, sondern sagen voraus, was es tut. In der Klausur gibt es dafür keinen Rechner und keinen Computer: Man spielt das Programm auf Papier durch. Punkte nennt die Beispielklausur für diese Aufgabe nicht.
- a) Gesucht ist die Ausgabe von A6a und eine Erklärung. Die Ausgabe allein reicht nicht: Man muss sagen, welche Zeilen in welcher Reihenfolge laufen.
- b) Gesucht ist eine Zahl: wie oft der Schleifenrumpf bei der Eingabe 2025 ausgeführt wird. „Nachvollziehbar“ heißt: Eine Tabelle mit den Werten von
xundyje Durchlauf muss dastehen. - c) Gesucht ist die genaue Ausgabezeile von A6b bei der Eingabe 1234, mit allen Zeichen.
- a) Klären, was der StringBuilder und append tun.
- a) Der switch springt zur passenden Marke.
- a) Was ohne break danach passiert, und die Ausgabe.
- b) Startwerte, dann Rest und Division durch 10.
- b) Die Schleife Durchlauf für Durchlauf, bis x = 0 ist.
- c) Dieselbe Tabelle für 1234, dann die Ausgabezeile.