Fachkonzept - Variablen und Zuweisungen
Datenverwaltung mit Variablen
Variablen dienen in der Informatik dazu, Daten zu verwalten.
Eine Variable ist ein Name, der (in der Regel) mit einem Datenobjekt verknüpft ist.
In der Simulation zum PageRank-Verfahren haben wir Variablen zaehler
, a
,
b
, ..., f_neu
benutzt, um Daten zur Simulation
des Surfverhalten von Webseitenbesuchern zu verwalten.
Die Tabelle zeigt die benutzten Variablen und die zu einem bestimmten Zeitpunkt verwalteten Daten.
Variable | Datenobjekt |
---|---|
zaehler | 1 |
a | 300 |
b | 300 |
c | 300 |
d | 300 |
e | 300 |
f | 300 |
a_neu | 180.0 |
b_neu | 460.0 |
c_neu | 580.0 |
d_neu | 300.0 |
e_neu | 100.0 |
f_neu | 180.0 |
Als Wert einer Variablen wird das Datenobjekt angesehen, das von der Variablen aktuell verwaltet wird.
Ein Variablenzustand beschreibt die aktuell vorliegenden Variablen mit den verwalteten Daten.
Einen Variablenzustand kann - wie oben - mit einer Tabelle darstellen. Wir werden einen Variablenzustand auch kurz so notieren:
{zaehler -> 1; a -> 300; b -> 300; ...; f_neu -> 180.0}
Zuweisungen an Variablen
Mit einer Zuweisung kann man eine Variable mit einem neuen Datenobjekt verknüpfen.
Eine Zuweisung ist eine Anweisung, die eine Variable mit einem neu berechneten Datenobjekt verknüpft.
Das folgende Beispiel zeigt eine Zuweisung, bei der der Variablen zaehler
ein
neues Datenobjekt zugewiesen wird.
zaehler = zaehler + 1
Der Aufbau einer Zuweisung lässt sich am Beispiel klarmachen:
Eine Zuweisung besteht 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 Zuweisung auch wie folgt beschreiben:
[variable] = [term]
Wir werden hier - angelehnt an Python - das Gleichheitszeichen "=" als Zuweisungszeichen benutzen.
Beachte, dass oft auch die Zeichenfolge ":=" oder der Pfeil ←
als Zuweisungszeichen benutzt werden.
Die Ausführung einer Zuweisung erfolgt nach folgendem Schema:
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.
Am besten, du liest es daher in der Form "... wird zugewiesen ...".
Mit einer Trace-Tabelle protokolliert man die Veränderung von Variablenzuständen, wenn mehrere Zuweisungen (bzw. sonstige Anweisungen) ausgeführt werden. Das folgende Beispiel zeigt eine solche Trace-Tabelle.
Zuweisung | a | b | c | d | e | f | a_neu | b_neu | c_neu | d_neu | e_neu | f_neu |
---|---|---|---|---|---|---|---|---|---|---|---|---|
a = 300 | 300 | |||||||||||
b = 300 | 300 | 300 | ||||||||||
c = 300 | 300 | 300 | 300 | |||||||||
d = 300 | 300 | 300 | 300 | 300 | ||||||||
e = 300 | 300 | 300 | 300 | 300 | 300 | |||||||
f = 300 | 300 | 300 | 300 | 300 | 300 | 300 | ||||||
a_neu = (0.8*c)/3 + (0.2*(a+b+c+d+e+f))/6 + (0.8*f)/6 | 300 | 300 | 300 | 300 | 300 | 300 | 180.0 | |||||
b_neu = (0.8*a)/2 + (0.8*e) + (0.2*(a+b+c+d+e+f))/6 + (0.8*f)/6 | 300 | 300 | 300 | 300 | 300 | 300 | 180.0 | 460.0 | ||||
c_neu = (0.8*a)/2 + (0.8*b)/2 + (0.8*d) + (0.2*(a+b+c+d+e+f))/6 + (0.8*f)/6 | 300 | 300 | 300 | 300 | 300 | 300 | 180.0 | 460.0 | 580.0 | |||
d_neu = (0.8*c)/3 + (0.8*b)/2 + (0.2*(a+b+c+d+e+f))/6 + (0.8*f)/6 | 300 | 300 | 300 | 300 | 300 | 300 | 180.0 | 460.0 | 580.0 | 300.0 | ||
e_neu = 0 + (0.2*(a+b+c+d+e+f))/6 + (0.8*f)/6 | 300 | 300 | 300 | 300 | 300 | 300 | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | |
f_neu = (0.8*c)/3 + (0.2*(a+b+c+d+e+f))/6 + (0.8*f)/6 | 300 | 300 | 300 | 300 | 300 | 300 | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 180.0 |
a = a_neu | 180.0 | 300 | 300 | 300 | 300 | 300 | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 180.0 |
b = b_neu | 180.0 | 460.0 | 300 | 300 | 300 | 300 | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 180.0 |
c = c_neu | 180.0 | 460.0 | 580.0 | 300 | 300 | 300 | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 180.0 |
d = d_neu | 180.0 | 460.0 | 580.0 | 300.0 | 300 | 300 | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 180.0 |
e = e_neu | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 300 | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 180.0 |
f = f_neu | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 180.0 | 180.0 | 460.0 | 580.0 | 300.0 | 100.0 | 180.0 |