i

Übungen

Aufgabe 1: chuck-a-luck - Ein vorgegebenes Datenmodell interpretieren und implementieren

Beim chuck-a-luck-Spiel soll ein Objekt der Klasse Spiel alle beteiligten Objekte verwalten und die Spielaktionen als Operationen zur Verfügung stellen.

Klassendiagramm

(a) Skizziere ein Objektdiagramm zur Miniwelt chuck-a-luck.

(b) Woran erkennt man im vorgegebenen Klassendiagramm, dass das Spiel-Objekt für die Erzeugung der weiteren Objekte zuständig ist? Welche weiteren Zuständigkeiten hat das Spiel-Objekt?

(c) Implementiere dieses Modell. Teste es mit dem folgenden Testprogramm.

from chuckaluck import *
# Erzeugung der Objekte
spiel = Spiel()
# Durchführung eines Spiels
spiel.einsatzZahlen()
spiel.spielzahlSetzen(5)
spiel.wuerfelWerfen()
spiel.gewinnAuszahlen()
# Ausgabe der Spiel
print("Würfel A:", spiel.wuerfelA.augen)
...

Aufgabe 2: Populationsentwicklung - Ein vorgegebenes Datenmodell implementieren

Das folgende Klassendiagramm zeigt ein System, mit dem man die Entwicklung einer Population simulieren kann.

Klassendiagramm

(a) Implementiere die Klasse Population so, dass die Mäusepopulation aus Modellierung einer Mäusepopulation als Miniwelt erfasst wird.

(b) Implementiere die Klasse Simulator so, dass sie die Entwicklung der verwalteten Population beschreibt.

(c) Erstelle ein geeignetes Testprogramm, um die Implementierung zu überprüfen.

(d) Was müsste am Datenmodell verändert werden, wenn man die Population aus dem Miniprojekt modellieren wollte?

Aufgabe 3: Ein Datenmodell erstellen

Ein Zahlenschloss bestehe aus drei Einstellrädern, mit denen die Ziffern der Schlüsselzahl einzeln eingestellt werden können. Hat man die Schlüsselzahl richtig getroffen, dann ist das Schloss offen.

Zahlenschloss[1]

Entwickle ein objektorientiertes Datenmodell, das die vorliegende Miniwelt möglichst strukturgetreu beschreibt. Stelle das Datenmodell auch mit Hilfe von UML-Diagrammen dar.

Implementiere und teste das Datenmodell.

Aufgabe 4: Ein Datenmodell erstellen

Eine Pixelgrafik im pbm-Format hat folgenden Aufbau (vergl. Einstieg - Pixelgrafik):

P1
24 36
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000010000000000
000000000000110000000000
000000000000100000000000
000000000011110000000000
000000000110110000000000
000000001111111100000000
000000010001110010000000
000001110001110011000000
000001100111110011100000
000001100000001001100000
000000000000001011100000
000000000000000000110000
000000000000000011110000
000000000000000110011000
000000000000000010111000
000000000000000111111000
000000000000000001011100
000000000000000011011100
000000000000000111111100
000000000000000011101110
000000000000000011111011
000000000000000011011111
000000000000000011101111
000000000000000001101011
000000000000000001010111
000000000000000001111110
000000000000000001111000
000000000000000000110111
000000000000000000111111
000000000000000000011000

Beachte, dass die Zeilenumbrüche zur Darstellung der Nullen und Einsen optional sind. Man könnte also auch alle Nullen und Einsen in eine einzige Zeile schreiben.

P1
24 36
000000000000000000000000...000000000000000000011000

Entwickle ein objektorientiertes Datenmodell, das die Miniwelt Bild im pbm-Format möglichst strukturgetreu beschreibt. Überlege dir hierzu auch Operationen (wie z.B. das Invertieren), die ein Pixelgrafik-Objekt zur Verfügung stellen könnte.

Implementiere und teste das Datenmodell.

Quellen

Suche

v
7.2.3.6.5
inf-schule.de/oop/python/bank/datenmodelle/uebungen
inf-schule.de/7.2.3.6.5
inf-schule.de/@/page/Eo3fVpPoKjtTYDqe

Rückmeldung geben