🏆

Aufgabe gelöst!

Sehr gut!

+50 XP


⚡ 0 XP
✅ 0 gelöst
🔥 0
📦

Variablen-Schreibtischtest

Informatik · Gymnasium · Klassen 10–13 · PRIMM-Methode

Variablen Interaktiv Kl. 10–13
🎯 Worum geht's? Klasse 10–13 · 1 Unterrichtsstunde

Nach dieser Seite kannst du …

  • Wertzuweisungen Zeile für Zeile in einer Tabelle verfolgen
  • die Belegung aller Variablen nach einem Programmstück angeben
  • Datentypen und Rechenoperationen dabei richtig berücksichtigen

Vorwissen: keines

📝 Aufgaben

Jede Aufgabe hat fünf Schritte: Predict › Run › Investigate › Modify › Make. Wähle eine Aufgabe aus – oder nutze oben die Leiste „Aufgaben: 1, 2, 3 …“.

0
⚡ Gesammelte XP
0
✅ Aufgaben abgeschlossen
0
🔥 Streak (Tage)
–
🎯 Genauigkeit

📖 Worum geht es?

Du lernst, den Zustand von Variablen Schritt für Schritt zu verfolgen – ohne den Code auszuführen. Datentypen, Ausdrücke, Typumwandlungen und Scope stehen im Mittelpunkt.

🔮 P – Predict
Was gibt der Ausdruck zurück?
▶️ R – Run
Variablenwerte Zeile für Zeile eintragen.
🔍 I – Investigate
Warum verhält sich der Code so?
✏️ M – Modify
Code gezielt anpassen.
🛠️ M – Make
Eigene Methode schreiben.

🏅 Zuletzt verdiente Badges

🔮 Predict
Aufgabe 1 – Ganzzahl-Arithmetik

Analysiere den folgenden Code, ohne ihn auszuführen.

💡Welchen Wert hat ergebnis am Ende?
▶️ Run – Variablenzustand

Bestimme nach jeder Zeile den aktuellen Wert jeder Variable.

Zeile Anweisung a b ergebnis
1 int a = 7; – –
2 int b = 2; –
3 int ergebnis = a / b;
4 ergebnis = ergebnis + 1;
Bei int / int rechnet Java ganzzahlig: Der Nachkommateil wird abgeschnitten, nicht gerundet. Was bleibt bei 7 / 2 übrig?
🔍 Investigate

Was wäre das Ergebnis von 7 / 2, wenn a als double deklariert wäre?

Nenne den Operator, der den Rest einer Ganzzahldivision liefert.

✏️ Modify

Modifiziere genau eine Zeile, sodass ergebnis nach Zeile 3 den Wert 3.5 enthält (am Ende also 4.5).

☕ Java – Modify
Java rechnet mit Kommazahlen, sobald mindestens ein Operand ein double ist. Wie machst du a oder b vor der Division zu einem double?
🛠️ Make

Implementiere teileGenau: Gibt a / b als double zurück.

☕ Java – Make
Wie in Modify: Ein Operand muss vor der Division ein double sein – zum Beispiel durch einen Cast.
🔮 Predict
Aufgabe 2 – Typumwandlung & Overflow
💡Welchen ASCII-Code hat c am Ende? (Tipp: 'A' = 65)
▶️ Run – Variablenzustand

Bestimme nach jeder Zeile den aktuellen Wert.

Zeile Anweisung n (int) c (char) d (double)
1 int n = 65; – –
2 char c = (char) n; –
3 double d = n;
4 c = (char)(c + 1);
Ein Cast (char) macht aus der Zahl das Zeichen mit diesem ASCII-Code. Eine double-Variable zeigt ganze Zahlen mit .0 an.
🔍 Investigate

Was passiert bei byte b = 127; b++;?

Welche Konvertierung ist eine implizite Erweiterung?

✏️ Modify

Modifiziere den Code so, dass d den Wert 65.5 erhält.

☕ Java – Modify
Welche Zahl musst du zu n addieren – oder welchen Wert direkt zuweisen –, damit 65.5 herauskommt?
🛠️ Make

Implementiere naechsterBuchstabe: 'A' → 'B' · 'Z' → 'A'

☕ Java – Make
Rechne den Buchstaben in eine Position 0–25 um (c - 'A'), gehe eins weiter und sorge mit % 26 dafür, dass nach Z wieder A kommt. Zum Schluss zurück in ein char umwandeln.
🔮 Predict
Aufgabe 3 – Boolesche Ausdrücke
💡Welchen Wert hat aussage am Ende?
▶️ Run – Variablenzustand
Zeile Anweisung x y p q aussage
1 int x = 5; – – – –
2 int y = 10; – – –
3 boolean p = x < y; – –
4 boolean q = y % 3 == 0; –
5 boolean aussage = p && !q;
Werte Zeile für Zeile aus: Was ergibt 10 % 3? Und was macht ! aus false?
🔍 Investigate

Was liefert true || (1/0 == 0) in Java?

Welcher Ausdruck prüft, ob n gerade ist?

✏️ Modify

Modifiziere die Zeile mit aussage so, dass der Ausdruck true ergibt, wenn mindestens eine der Bedingungen gilt.

☕ Java – Modify
„Mindestens eine Bedingung gilt“ – welcher logische Operator passt dazu: UND oder ODER?
🛠️ Make

Implementiere istSchaltjahr: durch 4 teilbar, außer durch 100 – es sei denn, auch durch 400.

☕ Java – Make
Zerlege die Regel in Teilbedingungen mit %: durch 4 teilbar UND nicht durch 100 teilbar – ODER durch 400 teilbar.
🔮 Predict
Aufgabe 4 – Gültigkeit & Verdecken
💡Was wird ausgegeben (in dieser Reihenfolge)?
▶️ Run – Welches x gilt wo?
Zeile Anweisung Ausgabe
5 (in zeige()) System.out.println(x);
10 (in main) System.out.println(x);
Zeile 5 steht in zeige() – gibt es dort eine eigene Variable x?
Zeile 10 steht in main – dort gibt es keine lokale Variable x.
🔍 Investigate

Was versteht man unter Shadowing?

Was passiert bei int x = 10; { int x = 20; } innerhalb einer Methode?

✏️ Modify

Modifiziere den Code so, dass beide println-Aufrufe den Wert 20 ausgeben.

☕ Java – Modify
Mit int x = … legt zeige() eine neue lokale Variable an. Was passiert, wenn du stattdessen der vorhandenen Klassenvariable einen Wert zuweist?
🛠️ Make

Implementiere tausche: gibt {b, a} zurück.
tausche(3, 7) → {7, 3}

☕ Java – Make
Ein Array lässt sich direkt mit Werten anlegen: new int[]{…, …}. In welcher Reihenfolge kommen a und b hinein?
🔮 Predict
Aufgabe 5 – Strings & Verkettung
💡Was gibt die letzte Zeile aus?
▶️ Run – Variablenzustand
Zeile Anweisung s n Ausgabe
1 String s = "1"; – –
2 int n = 2; –
3 s = s + n; –
4 System.out.println(s + n);
Sobald ein String beteiligt ist, bedeutet + „aneinanderhängen“, nicht „addieren“ – von links nach rechts.
🔍 Investigate

Was ergibt "" + 1 + 2?

Was ergibt 1 + 2 + ""?

✏️ Modify

Speichere statt des Strings die Zahl 3 in summe.

☕ Java – Modify
Wandle den String mit Integer.parseInt(…) in eine Zahl um, bevor du addierst.
🛠️ Make

Implementiere wiederhole: wiederhole("ab", 3) → "ababab"

☕ Java – Make
Beginne mit einem leeren String und hänge in einer Schleife n-mal s an.
🔮 Predict
Aufgabe 6 – Inkrement & Ausdrucksreihenfolge
💡Welchen Wert hat y am Ende?
▶️ Run – Schritt für Schritt
Zeile Anweisung a b y
1 int a = 3; – –
2 int b = a++; –
3 int y = ++a + b;
a++ liefert erst den alten Wert und erhöht danach; ++a erhöht erst und liefert dann den neuen Wert. Notiere nach jeder Zeile a, b und y.
🔍 Investigate

Unterschied zwischen x++ und ++x als Ausdruck?

Was ergibt int x = 5; int y = x-- - --x;?

✏️ Modify

Ersetze a++ durch ++a und ergänze einen Kommentar mit den neuen Werten.

☕ Java – Modify
Ersetze a++ in Zeile 2 durch ++a und verfolge die Werte noch einmal Zeile für Zeile.
🛠️ Make

Implementiere stellenwert: Gibt die Ziffer an Position stelle (0-basiert, von rechts).
stellenwert(1234, 0) → 4 · stellenwert(1234, 2) → 2

☕ Java – Make
n % 10 liefert die letzte Ziffer, n / 10 schneidet sie ab. Wie oft musst du abschneiden, um an die gewünschte Stelle zu kommen?
🔮 Predict
Aufgabe 7 – Arrays & Referenzen

Analysiere den folgenden Code, ohne ihn auszuführen.

💡Was gibt die letzte Zeile aus?
▶️ Run – Variablenzustand
Zeile Anweisung arr[0] copy copy[0]
1 int[] arr = {1,2,3}; – –
2 int[] copy = arr;
3 copy[0] = 99;
4 System.out.println(arr[0]);
copy = arr legt kein neues Array an – beide Variablen zeigen auf dasselbe Array.
🔍 Investigate

Unterschied zwischen copy = arr und copy = arr.clone()?

Was gibt arr == copy aus, wenn copy = arr?

✏️ Modify

Modifiziere eine Zeile, sodass arr[0] nach der Zuweisung 1 bleibt.

☕ Java – Modify
Du brauchst ein neues Array mit denselben Werten. Arrays haben dafür eine eingebaute Methode.
🛠️ Make

Implementiere verdopple: Gibt ein neues Array zurück, in dem jedes Element verdoppelt ist.
verdopple({1,2,3}) → {2,4,6}

☕ Java – Make
Lege ein neues Array gleicher Länge an und fülle es in einer Schleife mit den verdoppelten Werten.
🔮 Predict
Aufgabe 8 – Objekte & null
💡Was wird ausgegeben?
▶️ Run – Variablenzustand
Zeile Anweisung p1.name p1.alter p2.name p2.alter
1 Person p1 = new Person("Anna",25); – –
2 Person p2 = p1;
3 p2.alter = 30;
4 System.out.println(p1.name + " " + p1.alter);
p2 = p1 kopiert nur den Verweis auf das Objekt – nicht das Objekt selbst.
🔍 Investigate

Was passiert bei Person p3 = null; p3.alter = 5;?

Wie prüft man sicher, ob eine Referenz nicht null ist?

✏️ Modify

Modifiziere den Code, sodass p1.alter nach der Änderung noch 25 ist.

☕ Java – Modify
Damit p2 ein eigenes Objekt ist, muss es mit new erzeugt werden.
🛠️ Make

Implementiere aelter: gibt neue Person mit erhöhtem Alter zurück.
p.aelter(5) bei Person("Anna",25) → Person("Anna",30)

☕ Java – Make
Ändere nicht this.alter, sondern erzeuge mit new Person(…) eine neue Person mit gleichem Namen und höherem Alter.
🔮 Predict
Aufgabe 9 – String-Immutabilität
💡Was gibt die letzte Zeile aus?
▶️ Run – Variablenzustand
Zeile Anweisung a b c
1 String a = "Hallo"; – –
2 String b = a; –
3 String c = a + "Welt";
4 System.out.println(a);
Strings lassen sich nicht verändern: a + "Welt" erzeugt einen neuen String. Was steht danach noch in a?
🔍 Investigate

Was gibt "Hallo" == "Hallo" aus (beide Literale)?

Welche Methode vergleicht den Inhalt zweier Strings?

✏️ Modify

Ersetze den ==-Vergleich durch einen korrekten Inhaltsvergleich mit .equals().

☕ Java – Modify
== prüft, ob es dasselbe Objekt ist. Welche Methode vergleicht den Inhalt?
🛠️ Make

Implementiere palindrom: Groß-/Kleinschreibung ignorieren.
palindrom("Racecar") → true · palindrom("Java") → false

☕ Java – Make
Mache den Text zuerst einheitlich klein. Vergleiche ihn dann mit seiner Umkehrung – oder das erste mit dem letzten Zeichen usw.
🔮 Predict
Aufgabe 10 – Pass-by-Value vs. Referenz
💡Was gibt der Code aus (zwei Zeilen)?
▶️ Run – Schritt für Schritt
Kontext Anweisung x (main) arr[0] (main)
main: Z1 int x = 5; –
main: Z2 int[] arr = {10};
nach verdoppeln(x) verdoppeln(x) aufgerufen
nach verdoppeln(arr) verdoppeln(arr) aufgerufen
Bei int bekommt die Methode eine Kopie des Werts, beim Array eine Kopie des Verweises. Was ändert sich dadurch jeweils in main?
🔍 Investigate

Warum ändert verdoppeln(int n) das Original x nicht?

Wie gibt man einen neuen Wert aus einer Methode zurück?

✏️ Modify

Passe verdoppeln an, sodass x danach 10 ist.

☕ Java – Modify
Die Methode muss den neuen Wert mit return zurückgeben – und main muss ihn in x speichern.
🛠️ Make

Implementiere fuelle: Füllt ein Array in-place mit val.
fuelle(arr, 7) mit {0,0,0} → {7,7,7}

☕ Java – Make
Gehe mit einer Schleife über alle Indizes und setze jedes Feld. Ein neues Array brauchst du nicht – warum?

🏅 Deine Badges

Verdiente Badges leuchten auf.

📊 Statistik

↺ Fortschritt zurücksetzen

Achtung: Alle Daten werden unwiderruflich gelöscht.

📄 Arbeitsblatt erstellen

Wähle aus, welche Bereiche auf das Arbeitsblatt kommen. Es enthält dann alle … Aufgaben dieser Seite aus diesen Bereichen – mit Kästchen zum Ankreuzen, leeren Tabellen und Platz zum Schreiben, ohne Lösungen und Tipps.

Bereiche für das Arbeitsblatt