i

Strukturierung – Variablen und Zuweisungen

Zielsetzung

In der Erkundung hast du das erste Mal in PythonKara eine Variable verwendet. Das ist beim Programmieren, vor allem beim Programmieren ohne Kara, ein sehr wichtiges Konzept. Auf dieser Seite werden die informatischen Hintergründe von Variablen und Zuweisungen geklärt.

Im Gegensatz zu den vorherigen Kapiteln kommt hier eine weitere Denkweise zur Steuerung von Kara hinzu. Deshalb solltest du dir genügend Zeit lassen, um Variablen und Zuweisugen zu verstehen. Dafür ist es sinnvoll, wenn du den Abschnitt „Sicherung und Vertiefung“ erst bearbeitest, wenn du einige Übungsaufgaben erfolgreich gelöst hast.

Variablen

In der Erkundung hast du eine Variable zaehler verwendet. Auf dieser Seite geht es darum, was genau Variablen eigentlich sind.

Variablen dienen beim Programmieren dazu, Daten zu verwalten. Eine Variable ist ein Name, der (in der Regel) mit einem Wert verknüpft ist.

Eine Variable ist beim Programmieren also etwas anderes als eine Variable in der Mathematik. Diesen Unterschied vertieft die folgende Aufgabe.

Aufgabe 1: Variablen in Mathematik und Informatik

(a) Ordne mithilfe dieser App die Aussagen zu: Passen sie eher zu Variablen in der Mathematik oder zu Variablen in der Informatik (genauer: beim Programmieren)?

Quelle: Learning Apps

(b) Im Wort „Variable“ steckt das Wort „variabel“. Recherchiere, was es bedeutet. Erkläre, inwiefern das mit der Besonderheit von Variablen beim Programmieren zusammenhängt.

Zuweisungen

Der Wert einer Variable kann im Laufe des Programms verändert werden. Dazu benutzt man Zuweisungen. In der Erkundung hast du solche schon gesehen. Sie sind so aufgebaut:

Struktur einer Zuweisung

Zuerst wird der aktuelle Wert der Variablen bestimmt, die im Term vorkommen. Dann wird der Wert des Terms ausgerechnet. Dann wird dieser Wert als neuer Wert für die links genannte Variable gespeichert.

Es ist beim Programmieren sehr wichtig, zu verstehen, wie Zuweisungen funktionieren. Damit beschäftigen sich die beiden folgenden Aufgaben.

Aufgabe 2: Zuweisungen im Rollenspiel

Wie eine Zuweisung abläuft, versteht man am besten in einem Rollenspiel mit zwei Personen: Eine Person ist der Prozessor. Der Prozessor arbeitet das Programm Zeile für Zeile ab und führt nötige Berechnungen durch. Die andere Person ist der Datenverwalter und behält den Überblick darüber, welche Variable welchen Wert hat.

Braucht der Prozessor den Wert einer bestimmten Variable, so fragt er den Datenverwalter „Welchen Wert hat die Variable ...?“. Der Datenverwalter antwortet entsprechend. Am Ende der Abarbeitung einer Zuweisung sagt der Prozessor dem Datenverwalter, welchen neuen Wert eine Variable erhält: „Speichere ... als Wert der Variable ...“. Der Ablauf für die Zuweisung zaehler = zaehler + 1 kann so aussehen:

Dialog zwischen Prozessor und Speicherverwalter[1]

Suche dir einen Partner und führe nun selbst so einen Dialog für verschiedene Zuweisungen durch. Der Datenverwalter führt dazu eine Tabelle mit allen Variablennamen und deren Werten. Bei Änderungen streicht er den alten Wert durch und notiert einen neuen. Tauscht in jedem Aufgabenteil die Rollen. Kontrolliert nach jedem Aufgabenteil gemeinsam, ob ihr alles richtig gemacht habt.

Zum Einsatz im Unterricht bietet es sich an, die folgenden Rollenspiel-Karten zu verwenden.

(a) Variablenwerte zu Beginn:

Variablenname Wert der Variable
anzahl 0
summe 4
zaehler 2
Zuweisungen:

zaehler = 5
anzahl = summe
zaehler = 3

Variablenname Wert der Variable
anzahl 0, 4
summe 4
zaehler 2, 5, 3

(b) Variablenwerte zu Beginn:

Variablenname Wert der Variable
zaehler1 5
zaehler2 6
zaehler3 2
Zuweisungen:

zaehler1 = zaehler2 - zaehler3
zaehler4 = 6
zaehler2 = 3*zaehler1

(c) Variablenwerte zu Beginn:

Variablenname Wert der Variable
zaehler1 0
zaehler2 4
zaehler3 10
Zuweisungen:

zaehler1 = 6
zaehler1 = zaehler1 - 2 
zaehler2 = 3*zaehler2
zaehler3 = zaehler3 - zaehler1

Aufgabe 3: Zuweisungen alleine auswerten

Nun sollst du selbst Zuweisungen auswerten und beobachten, wie sich der Variablenzustand dabei verändert. Bearbeite hierfür das folgende Arbeitsblatt. Auf der linken Seite stehen die Zuweisungen. Die eingezeichneten geschweiften Klammern helfen dabei, die Zuweisungen auszuwerten.

Kurzschreibweise für den Variablenzustand

Da es sehr aufwändig ist, wie in Aufgabe 2 und 3 Tabellen für den Variablenzustand anzulegen, gibt es eine Kurzschreibweise. Den Variablenzustand zu Beginn von Aufgabe 1 (c) kann man so abkürzen:


{zaehler1 -> 0; zaehler2 -> 4; zaehler3 -> 10}

Sicherung und Vertiefung

Es ist sinnvoll, wenn du zuerst Übungsaufgaben bearbeitest, bevor du dich mit den weiteren Aufgaben auf dieser Seite beschäftigst.

Aufgabe 4: Das Wichtigste notieren

Halte das Gelernte im folgenden Wissensspeicher fest:

Aufgabe 5: Ein geauerer Blick aufs „=“

Beim Programmieren kommen sehr oft Ausdrücke der Form zaehler = zaehler + 1 vor. In der Mathematik ergibt ein solcher Ausdruck aber wenig Sinn: Die Gleichung $x = x + 1$ ist immer falsch.

Erkläre daran, welche Bedeutung das Zeichen = beim Programmieren hat. Wie ist der Zusammenhang zu Zuweisungen? Was ist der Unterschied zur Mathematik?

Aufgabe 6: Umkehrung

Bisher hast du mithilfe des Variablenzustands vorher sowie der Zuweisungen den Variablenzustand nachher hergestellt. Das ist das, was der Rechner auch tun muss. Um das System noch besser zu verstehen, drehen wir diese Aufgabe um.

Wir betrachten im Folgenden einen Variablenzustand vorher, dann eine oder mehrere Zuweisungen und zuletzt den Variablenzustand nachher. Zwei dieser Informationen sind gegeben, die dritte ist gesucht. Schaffst du es, sie zu bestimmen?

(a) Finde den Variablenzustand vorher heraus. Ist die Lösung eindeutig?


{                            }
zaehler1 = zaehler2
{zaehler1 -> 5; zaehler2 -> 5}

(b) Finde die Zuweisung heraus. Ist die Lösung eindeutig?


{zaehler1 -> 3; zaehler2 -> 9}

{zaehler1 -> 8; zaehler2 -> 9}

(c) Finde den Variablenzustand vorher heraus. Ist die Lösung eindeutig?


{                                           }
zaehler1 = zaehler2 - 5
zaehler3 = 2*zaehler1 + zaehler2 
{zaehler1 -> 3; zaehler2 -> 8; zaehler3 -> 14}

(d) Finde die Zuweisungen heraus. Ist die Lösung eindeutig? Findest du sogar Zuweisungen, sodass diese Zuweisungen Sinn ergeben? Was will man hier bezwecken?


{zaehler1 -> 44; zaehler2 -> 12}

{zaehler1 -> 12; zaehler2 -> 44; hilf -> 44}

Quellen

Suche

v
6.1.8.2
www.inf-schule.de/imperative-programmierung/kara/variablen/strukturierung_variablen
www.inf-schule.de/6.1.8.2
www.inf-schule.de/@/page/mYdpXroRzKeqR2mZ

Rückmeldung geben