Aufgaben

Aufgabe: Objekte und Referenzen visualisieren

Visualisieren Sie die beim Ablauf der folgenden Programme erzeugten Objekte und Referenzen mit Kästen und Pfeilen und geben Sie jeweils die Ausgabe des Programms an.

Hinweis: Die vordefinierte Methode reverse mutiert Arrays genau so wie die von uns definierte gleichnamige Prozedur.

# 1. Programm
def test(a,b):
  a.reverse()
  print(a)
  print(b)
  print(a == b)
  return a is b

x = [1,2,3]
print(test(x,x))
print(test(x,[1,2,3]))

# 2. Programm
nums = [1,2,3]
arrays = [nums,[1,2,3]]
nums = [4,5,6]
arrays[1] = arrays[0]
nums = arrays[1]
nums[0:3] = [7,8,9]
print(arrays[0][0])

Aufgabe: Mutation von Arrays programmieren

Definieren Sie eine Prozedur replace mit drei Parametern a, b, und c, die das Array a mutiert. In dem Array a sollen dabei alle Vorkommen des Teilarrays in b durch das Array in c ersetzt werden. Verwenden Sie dazu keine vordefinierten mutierenden Methoden. Schreiben Sie mit Hilfe der definierten Prozedur ein Programm, das alle Vorkommen der Zahlenfolge 1,2,3 in dem Array [1,2,3,4,1,2,1,2,3,4] durch die Zahl 123 ersetzt und das Ergebnis [123,4,1,2,123,4] ausgibt.