i

Variablen und Zuweisungen

Datenverwaltung mit Variablen

Variablen dienen in der Informatik dazu, Daten zu verwalten. Betrachte als Beispiel die Situation, in der Daten über eine Mäusepopulation verwaltet werden. Die Population soll zum betrachteten Zeitpunkt aus 6 jungen, 9 erwachsenen und 12 alten Mäusen bestehen. Die Daten dieser Situation lassen sich mit Hilfe von drei Variablen jung, erwachsen und alt verwalten. Die Tabelle zeigt die benutzten Variablen und die verwalteten Daten.

Variable Datenobjekt
jung 6
erwachsen 9
alt 12

Eine Variable ist ein Name, der (in der Regel) mit einem Datenobjekt verknüpft ist. Als Wert einer Variablen wird das Datenobjekt angesehen, das von der Variablen verwaltet wird.

Ein Variablenzustand beschreibt die aktuell vorliegenden Variablen mit den verwalteten Daten.

Einen Variablenzustand kann man - wie oben - mit einer Tabelle darstellen. Wir werden einen Variablenzustand auch kurz so notieren:

{jung -> 6; erwachsen -> 9; alt -> 12}

Bei der Wahl der Variablenbezeichner (d.h. der Namen, die man den Variablen gibt) ist man recht flexibel. Die folgenden Regeln beschreiben die Bezeichnerwahl in Python.

Man darf Groß- und Kleinbuchstaben wie im Beispiel jungVorher verwenden. Beachte hier, dass Python zwischen Groß- und Kleinschreibung unterscheidet. Erlaubt sind auch Ziffern wie im Beispiel jung0, sie dürfen nur nicht am Anfang eines Namens stehen. Zudem darf man einen Unterstrich im Namen (auch am Anfang) verwenden - wie im Beispiel gesamtanzahl_maeuse. Weitere Sonderzeichen sind nicht erlaubt. Umlaute sind zwar erlaubt, sollte man aber vermeiden.

Bei der Wahl der Variablenbezeichner sollte man sprechende Namen benutzen. Das sind Namen, die möglichst gut erklären, welche Daten mit den Variablen verwaltet werden.

Zuweisungen an Variablen

Das folgende Beispiel zeigt eine Zuweisung, bei der der Variablen alt ein neues Datenobjekt zugewiesen wird. Dieses ergibt sich, indem man den aktuellen Wert der Variablen erwachsen durch 3 teilt.

alt = erwachsen // 3

Eine Zuweisung ist eine Anweisung, die eine Variable mit einem neu berechneten Datenobjekt verknüpft.

Aufbau einer (einfachen) Zuweisung

Der Aufbau einer einfachen Zuweisung lässt sich am Beispiel klarmachen:

Struktur einer Zuweisung

Eine einfache Zuweisung besteht somit aus einer Variablen (der ein Wert zugewiesen wird) und einem Term (der den zuzuweisenden Wert festlegt). Komplexere Zuweisungen werden erst in den weiteren Abschnitten eingeführt.

Allgemein kann man den Aufbau einer einfachen Zuweisung auch wie folgt beschreiben:

[variable] = [term]

Wir werden hier - angelehnt an Python - das Gleichheitszeichen "=" als Zuweisungszeichen benutzen.

Ausführung einer Zuweisung

Die Ausführung einer Zuweisung erfolgt nach folgendem Schema:

Auswertung einer Zuweisung

Schritt 1: Der Wert des Terms wird mit Hilfe des aktuellen Variablenzustands ermittelt.

Schritt 2: Der Variablen, die auf der linken Seite der Zuweisung steht, wird der ermittelte Wert des Terms als neuer Wert zugeordnet.

Beachte, dass das Gleichheitszeichen = hier nicht die Gleichheit von Werten beschreibt, sondern dazu führt, dass der Variablen auf der linken Seite ein (neuer) Wert zugewiesen wird.

Trace-Tabelle

Eine Trace-Tabelle protokolliert die Veränderungen von Variablenzuständen, wenn mehrere Zuweisungen (bzw. sonstige Anweisungen) ausgeführt werden. Das folgende Beispiel zeigt eine solche Trace-Tabelle.

Zuweisung schritt jung erwachsen alt hilf
schritt = 0 0        
jung = 6 0 6      
erwachsen = 9 0 6 9    
alt = 12 0 6 9 12  
schritt = schritt + 1 1 6 9 12  
hilf = erwachsen * 4 + alt * 2 1 6 9 12 60
alt = erwachsen // 3 1 6 9 3 60
erwachsen = jung // 2 1 6 3 3 60
jung = hilf 1 60 3 3 60

Aufgabe 1: Beispiele für Zuweisungen

Die folgenden Beispiele verdeutlichen, wie die Werte von Variablen mit Hilfe von Zuweisungen verändert werden können. Gehe die Beispiele durch und ergänze jeweils den neuen Variablenzustand.

(a) Beispiel 1:

{jung -> 6}
jung = 8
{jung -> ...}

Hier wird der Wert der Variablen jung durch direkte Angabe eines neuen Werts überschrieben.

(b) Beispiel 2:

{}
hilf = 3
{hilf -> ...}

Hier wird die Variable hilf eingeführt und mit einem Wert versehen.

(c) Beispiel 3:

{jung -> 6}
hilf = jung
{jung -> ...; hilf -> ...}

Hier wird die Variable hilf eingeführt. Sie erhält den Wert, den die Variable jung aktuell hat.

(d) Beispiel 4:

{jung -> 6; erwachsen -> 9; alt -> 12}
hilf = erwachsen*4 + alt*2
{jung -> ...; erwachsen -> ...; alt -> ...; hilf -> ...}

Zunächst wird hier die rechte Seite der Zuweisung ausgewertet. Die Berechnung erfolgt mit den aktuellen Werten der vorkommenden Variablen. Der berechnete Wert wird dann der Variablen auf der linken Seite der Zuweisung als neuer Wert zugewiesen.

(e) Beispiel 5:

{schritt -> 0}
schritt = schritt + 1
{schritt -> ...}

Der Zuweisungsmechanismus funktioniert auch, wenn die Variable, der ein Wert zugewiesen wird, auf der rechten Seite vorkommt. Erst wird die rechte Seite mit dem aktuellen (d. h. vorherigen) Wert der Variablen ausgewertet. Der Wert der Variablen wird dann mit dem berechneten Wert überschrieben.

Aufgabe 2: Trace-Tabelle, Variablenbezeichner

Gegeben ist der folgende Python-Dialog:

>>> a = 20
>>> b = 12
>>> c = a + b
>>> d = a
>>> a = a // 2 + 4 * b
>>> b = d // 2 + b // 2
>>> c = a + b
>>> d = a
>>> a = a // 2 + 4 * b
>>> b = d // 2 + b // 2
>>> c = a + b

(a) Erstelle eine Trace-Tabelle zu der gezeigten Folge von Zuweisungen.

(b) Die Folge von Zuweisungen soll die Entwicklung einer Population beschreiben. Beurteile die Wahl der Variablenbezeichner.

(c) Die Population soll aus zwei Altersklassen bestehen. Beschreibe das hier benutzte Fortpflanzungsmodell mit einem geeigneten Diagramm.

Suche

v
2.7.1.1.1.3
inf-schule.de/programmierung/python/projekte/variablen/population/variablen
inf-schule.de/2.7.1.1.1.3

Rückmeldung geben