Einstieg - Simulation eines Roboters

Verarbeitung von Roboter-Objekten

Wir betrachten im Folgenden Objekte der Klasse Roboter (siehe roboter.txt).

Klassendiagramm Roboter

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))
X

Fehler melden

X

Suche