Übungen
Aufgabe 1
Betrachte das folgende Programm zur Simulation des Surfverhaltens von Webseitenbesuchern.
a = 300 b = 300 c = 300 d = 300 e = 300 f = 300 print(a, b, c, d, e, f) a_neu = (0.8*c)/3 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 b_neu = (0.8*a)/2 + (0.8*e) + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 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 d_neu = (0.8*c)/3 + (0.8*b)/2 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 e_neu = 0 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 f_neu = (0.8*c)/3 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 print(a, b, c, d, e, f) a = a_neu b = b_neu c = c_neu d = d_neu e = e_neu f = f_neu print(a, b, c, d, e, f)
Welche der drei Versionen beschreibt die Ausgaben korrekt, die von diesem Programm gemacht werden? Begründe deine Behauptung. Teste sie auch, indem du das Programm von Python ausführen lässt.
Version 1:
>>> 300 300 300 300 300 300 180.0 460.0 580.0 300.0 100.0 180.0 180.0 460.0 580.0 300.0 100.0 180.0
Version 2:
>>> 300 300 300 300 300 300 300 300 300 300 300 300 180.0 460.0 580.0 300.0 100.0 180.0
Version 3:
>>> 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300
Aufgabe 2
Hier ein weiteres Programm zur Simulation des Surfverhaltens von Webseitenbesuchern:
a = 300 b = 300 c = 300 d = 300 e = 300 f = 300 a = (0.8*c)/3 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 b = (0.8*a)/2 + (0.8*e) + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 c = (0.8*a)/2 + (0.8*b)/2 + (0.8*d) + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 d = (0.8*c)/3 + (0.8*b)/2 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 e = 0 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 f = (0.8*c)/3 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 print(a, b, c, d, e, f)
(a) Teste das Programm. Warum leistet dieses Programm nicht das Gewünschte?
(b) Erläutere den Fehler mit Hilfe geeigneter Variablenzustände. Ergänze hierzu im Programm analog weitere Kommentare, die die jeweils erreichten Variablenzustände beschreiben.
a = 300 b = 300 c = 300 d = 300 e = 300 f = 300 # {a -> 300; b -> 300; c -> 300; ...} a = (0.8*c)/3 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 # b = (0.8*a)/2 + (0.8*e) + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 # c = (0.8*a)/2 + (0.8*b)/2 + (0.8*d) + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 d = (0.8*c)/3 + (0.8*b)/2 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 e = 0 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 f = (0.8*c)/3 + \ (0.2*(a+b+c+d+e+f))/6 + \ (0.8*f)/6 print(a, b, c, d, e, f)
Aufgabe 3
(a) Entwickle ein Programm, um das Surfverhalten in der folgenden Webseitenwelt zu simulieren. Benutze dieselben Annahmen wie bisher.
(b) Entwickle ein Programm, um das Surfverhalten in der folgenden Webseitenwelt zu simulieren. Benutze dieselben Annahmen wie bisher.