Ü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.

Graph - Webseiten

(b) Entwickle ein Programm, um das Surfverhalten in der folgenden Webseitenwelt zu simulieren. Benutze dieselben Annahmen wie bisher.

Graph - Webseiten
X

Fehler melden

X

Suche