Variablen, Zuweisung und Programmzustand

Variables, Assignment, and Program State

Informatik Klasse 9 14 Aufgaben
InformatikProgrammierungVariablenKerncurriculum

Eine Variable ist eine benannte Speicherzelle mit genau einem aktuellen Wert; eine Zuweisung liest die rechte Seite und überschreibt die linke — gerichtet und endgültig, keine Gleichung. Der Programmzustand ist der Schnappschuss aller Variablenwerte zu einem Zeitpunkt. Genau hier setzen die dokumentierten Fehlvorstellungen an (du Boulay 1986; Qian & Lehman 2017): „x = x + 1 ist unlösbar", die Zuweisung wirke in beide Richtungen, eine Variable „merke sich" alte Werte oder aktualisiere sich von selbst.

Leicht
Multiple Choice #1 12s â–¶ Testen

Was macht die Anweisung a = 5 in einem Programm?

  • â—Ź Sie legt den Wert 5 in der Speicherzelle mit dem Namen a ab
  • â—‹ Sie prĂĽft, ob a gleich 5 ist
  • â—‹ Sie rechnet a plus 5
Das = ist hier keine Frage und keine Gleichung, sondern ein Befehl — „a erhält den Wert 5".
Multiple Choice #2 18s â–¶ Testen

Wie liest man die Zuweisung x = x + 1 richtig?

  • â—Ź Nimm den aktuellen Wert von x, addiere 1 und speichere das Ergebnis wieder in x
  • â—‹ Eine unlösbare Gleichung, denn x kann nie gleich x + 1 sein
  • â—‹ x und x + 1 werden miteinander vertauscht
Erst wird die rechte Seite mit dem alten Wert berechnet, dann wird das Ergebnis links gespeichert. Aus x = 4 wird so x = 5 — keine Gleichung, sondern ein Arbeitsschritt.
Wahr / Falsch #3 12s â–¶ Testen

Nach den Anweisungen a = 3 und danach a = 7 hat die Variable a beide Werte gespeichert.

âś“ Falsch
Falsch — eine Variable hält immer genau einen aktuellen Wert. Die zweite Zuweisung überschreibt die 3; sie ist danach weg.
Multiple Choice #4 15s â–¶ Testen

Was bewirkt die Zuweisung a = b?

  • â—Ź Der Wert von b wird in a kopiert — b bleibt unverändert
  • â—‹ Die Werte von a und b werden vertauscht
  • â—‹ Der Wert von a wird in b kopiert
Eine Zuweisung wirkt nur in eine Richtung — von rechts nach links. Die rechte Seite wird gelesen, die linke überschrieben.
Multiple Choice #5 15s â–¶ Testen

Was versteht man unter dem Zustand eines Programms?

  • â—Ź Die aktuellen Werte aller Variablen zu einem bestimmten Zeitpunkt
  • â—‹ Die Anzahl der Zeilen des Programms
  • â—‹ Ob das Programm gerade läuft oder beendet ist
Der Programmzustand ist der Schnappschuss des Speichers. Jede Zuweisung verändert diesen Zustand um genau eine Zelle.
LĂĽckentext #6 20s â–¶ Testen

Programm: x = 4, dann x = x * 2, dann x = x + 1. Welchen Wert hat x am Ende?

âś“ Antwort: 9
Schritt für Schritt: x ist 4, dann 4 · 2 = 8, dann 8 + 1 = 9. Jede Zuweisung benutzt den jeweils aktuellen Wert.
Wahr / Falsch #7 12s â–¶ Testen

In der Zuweisung punkte = punkte + 10 bedeutet das Gleichheitszeichen dasselbe wie in der Mathematik.

âś“ Falsch
Falsch — in der Mathematik wäre das eine falsche Gleichung. Im Programm ist = ein Befehl („erhält den Wert"), viele Sprachen sprechen ihn deshalb als „wird zu" aus.
LĂĽckentext #8 10s â–¶ Testen

Eine Variable ist eine benannte ___ im Speicher, die genau einen aktuellen Wert hält.

âś“ Antwort: Zelle
Das Bild der beschrifteten Speicherzelle trägt weit — ein Name, ein Fach, ein aktueller Inhalt, der beim Überschreiben ersetzt wird.
Mittel
LĂĽckentext #1 25s â–¶ Testen

Programm: a = 2, dann b = a + 3, dann a = 10. Welchen Wert hat b am Ende?

âś“ Antwort: 5
b wurde berechnet, als a noch 2 war — also b = 5. Die spätere Änderung von a ändert b nicht mehr; Variablen aktualisieren sich nicht von selbst.
Wahr / Falsch #2 20s â–¶ Testen

Um die Werte von a und b zu vertauschen, reichen die zwei Anweisungen a = b und b = a.

âś“ Falsch
Falsch — nach a = b ist der alte Wert von a bereits überschrieben. b = a kopiert dann nur denselben Wert zurück. Man braucht eine Hilfsvariable, die den alten Wert rettet.
LĂĽckentext #3 20s â–¶ Testen

Vertauschen mit Hilfsvariable: h = a, a = b, b = ?

âś“ Antwort: h
h hat den alten Wert von a gerettet. Nach a = b bekommt b diesen geretteten Wert aus h — jetzt sind a und b vertauscht.
Multiple Choice #4 20s â–¶ Testen

Zwei Anweisungen: (1) a = b + 1, (2) b = 5. Kommt es auf die Reihenfolge an?

  • â—Ź Ja — je nach Reihenfolge rechnet a mit dem alten oder mit dem neuen Wert von b
  • â—‹ Nein — am Ende stehen sowieso dieselben Werte in a und b
  • â—‹ Nein — der Computer sortiert die Anweisungen selbst richtig
Programme laufen strikt von oben nach unten. Eine Zuweisung sieht immer nur den Zustand, der in diesem Moment gilt.
Multiple Choice #5 20s â–¶ Testen

Lea sagt: „Wenn ich preis = netto * 1.19 schreibe, passt sich preis automatisch an, sobald sich netto später ändert." Was stimmt?

  • â—Ź Nein — die Zuweisung wird genau einmal ausgefĂĽhrt, danach besteht keine Verbindung mehr
  • â—‹ Ja — Variablen bleiben dauerhaft ĂĽber die Formel verbunden
  • â—‹ Nur wenn man das Programm zweimal startet
Eine Zuweisung speichert einen berechneten Wert — keine Formel. Anders als in einer Tabellenkalkulation gibt es keine automatische Neuberechnung.
Multiple Choice #6 25s â–¶ Testen

Programm: a = 1, b = 2, a = b, b = a. Welche Werte haben a und b am Ende?

  • â—Ź a = 2 und b = 2
  • â—‹ a = 2 und b = 1
  • â—‹ a = 1 und b = 2
a = b macht a zu 2 (die 1 ist weg). b = a kopiert dann die 2 zurĂĽck nach b. Genau deshalb funktioniert Tauschen ohne Hilfsvariable nicht.