Einstieg - Simulation eines Roboters
Verarbeitung von Roboter-Objekten
Wir betrachten im Folgenden Objekte der Klasse Roboter
(siehe
roboter.txt).
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))