Einstieg - Simulation eines Roboters
Verarbeitung von Roboter-Objekten
Wir betrachten im Folgenden Objekte der Klasse Roboter
(siehe
roboter.py).
Zuweisungen an Variablen
Mit Hilfe von Variablen lassen sich Roboter
-Objekte verwalten.
Aufgabe 1
(a) Stell Vermutungen auf, was an der Stelle der drei Fragezeichen jeweils steht. Teste, ob deine Vermutungen stimmen.
>>> rob1 = Roboter()
>>> rob1.x
???
>>> rob1.y
???
>>> rob2 = rob1
>>> rob2.x
???
>>> rob2.y
???
>>> rob2.schritt()
>>> rob2.x
???
>>> rob2.y
???
>>> rob1.x
???
>>> rob1.y
???
>>> rob2 = Roboter()
>>> rob2.x
???
>>> rob2.y
???
>>> rob1.x
???
>>> rob1.y
???
(b) Kannst du dir die Ergebnisse erklären?
Seiteneffekte
Verändert man innerhalb einer Prozedur den Wert einer globalen Variablen, so spricht man auch von einem Seiteneffekt.
Aufgabe 2
Vergleiche das Verhalten der beiden folgenden Programme. Was fällt auf?
Programm 1: Verarbeitung von Zahlen
def invertieren(x):
print(id(x))
x = -x
print(id(x))
a = 5
print(a)
print(id(a))
invertieren(a)
print(a)
print(id(a))
Programm 2: Verarbeitung von Objekten
from roboter import Roboter
def umdrehen(r):
print(id(r))
r.rechts()
r.rechts()
print(id(r))
rob = Roboter()
print(rob.r)
print(id(rob))
umdrehen(rob)
print(rob.r)
print(id(rob))