From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- Bachelor/Prog1/Prakt6/index.htm | 249 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 Bachelor/Prog1/Prakt6/index.htm (limited to 'Bachelor/Prog1/Prakt6/index.htm') diff --git a/Bachelor/Prog1/Prakt6/index.htm b/Bachelor/Prog1/Prakt6/index.htm new file mode 100644 index 0000000..03c361b --- /dev/null +++ b/Bachelor/Prog1/Prakt6/index.htm @@ -0,0 +1,249 @@ + + + + + + +Praktikum 6 + + + + + + + + + + + + + + +
 
FH Darmstadt  +
FB Informatik  +
Prof.Dr. H.P.Weber
+
Programmieren I  +
Praktikum
+
+
6
+
+ +
+ + + + +
Ziel: +Sie sollen problemangepasste Datentypen als Klassen entwerfen und ein + Anwendungsprogramm als System aus Objekten implementieren können.  +
+ +
+ + + + + + + + + + + + + +
+

+1    Erwärmen eines Tiefkühlgerichts in einer Mikrowelle + +

+ +Realisieren Sie eine Klasse Microwave sowie eine Klasse FrozenMeal:  +
+ + + + + + + + + + + + +
+
Microwave
+
- power : int  +
- volume : int +
- period : double
Constructor(a certain volume)  +
Destructor() +
+ morePower() : void +
+ lessPower() : void +
+ setPeriod(a certain period) : void  +
+ heatMeal(a certain FrozenMeal) : void +
+ getPower() : int +
+ getPeriod() : double
+
+ + + + + + + + + + + + +
+
FrozenMeal
+
- name : char* (or string) +
- volume : int +
- temperature : double +
- coeffizient : double
Constructor(a certain name, a certain volume)  +
Destructor() +
+ changeTemperature(a certain temperature) : void +
+ getName() : char* (or string) +
+ getVolume() : int +
+ getCoeffizient() : double +
+ getTemperature() : double
+
+
+Besonderheiten der Methoden sind: +
    +
  • +Durch morePower() und lessPower() soll die Leistung im Bereich +von minimal 200 W bis maximal 1000 W in Schritten von 200 W geändert +werden.
  • + +
  • +Das Erwärmen eines Gerichtes wird durch folgenden Zusammenhang beschrieben:
    +Temperatur = Anfangstemperatur + ( Koeffizient * Leistung * Zeitdauer +/ Volumen)
  • + +
  • +Als Erwärmungskoeffizient soll der Wert für Wasser verwendet +werden: Koeffizient = 0.24 cm3 * Grad / Ws.
  • + +
  • +Achten Sie auf die Einheiten: am einfachsten ist es, wenn Volumen von Mikrowelle +und Tiefkühlgericht in cm3 vom Anwendungsprogramm übernommen +werden.
  • + +
  • +Beim Erzeugen soll ein Tiefkühlgericht eine Temperatur von -18 Grad +haben.
  • + +
  • +Die Destruktoren sollen den Endzustand des jeweiligen Objektes am Bildschirm +ausgeben.
  • + +
  • +Keine Methode der beiden Klassen liest irgendwelche Daten von Tastatur ein oder +gibt etwas auf den Bildschirm aus. Dafür ist allein das Anwendungsprogramm +zuständig.
  • +
+

Realisieren Sie zum Testen Ihrer Klassen ein Anwendungsprogramm, das mit verschiedenen +Tiefkühlgerichten und einer geeigneten Mikrowelle die vorhandenen Methoden benutzt. +

+ +
+ + + + + +
+

+2    Tic-Tac-Toe

+ +

Entwickeln Sie einen Datentyp TicTacToe, +der es ermöglicht ein vollständiges Programm zum Spielen von Tic-Tac-Toe zu +schreiben. +

    +
  • Die Klasse TicTacToe soll als private + Attribut + ein char-Array mit neun Elementen enthalten. +
  • +
  • +Der Konstruktor soll ein leeres Spielfeld initialisieren. +
  • +
  • +Die public Methode playOneGame +soll den Ablauf eines Tic-Tac-Toe-Spieles realisieren. Dabei soll sie +verschiedene private Methoden aufrufen, +die die verschiedenen Teilaufgaben während des Spielablaufs (Eingaben, +Ausgaben, Ermitteln eines Siegers, Realisierung einer Strategie für die +Computerzüge) erledigen. +
  • +
  • +Das Spiel soll für zwei Spieler realisiert werden, wobei der Computer einen der +beiden Spieler spielt. Der menschliche Spieler soll aussuchen können, ob er +erster oder zweiter Spieler ist.Wenn der erste +Spieler zieht, soll ein X in das +entsprechende Kästchen gesetzt werden, wenn der zweite Spieler zieht, soll ein O +in das entsprechende Kästchen gesetzt werden. Es darf nur in ein leeres +Kästchen gezogen werden. +
  • +
  • +Nach jedem Zug soll bestimmt werden, ob ein Spieler gewonnen hat oder ob das +Spiel unentschieden endete. +
  • +
+ +
+ +
+ + + + + +
+

+3    Große Integer-Zahlen (fakultativ)

+ +

Entwickeln Sie einen Datentyp Integer40, +der ein Array mit 40 Elementen benutzt, um ganze Zahlen mit bis zu 40 Dezimalstellen zu +speichern. +

    +
  • Implemetieren Sie die Methoden read, +write, add, +subtract. +
  • +
  • +Für den Vergleich von Integer40-Objekten +sollen die Methoden isEqual, isNotEqual, +isGreaterThan, +isSmallerThan, +isGreaterOrEqual, +isSmallerOrEqual +zur Verfügung stehen. Jede dieser Methoden ist eine Prädikat-Funktion, die true +zurückgibt, wenn die entsprechende Beziehung zwischen zwei Objekten stimmt und false, +wenn sie nicht stimmt. Realisieren Sie außerdem eine Prädikat-Funktion +isZero. +
  • +
+

Testen Sie Ihre Klasse in einem Anwendungsprogramm, das die +vorhandenen Operationen mit geeignet gewählten Integer40-Objekten +ausführt. +

+ +
+ + + +
+

+4    Übungsklausur (fakultativ)

+

+Als Klausurvorbereitung können Sie die PG 1-Klausur vom letzten Jahr bearbeiten. +Am besten halten Sie sich dabei auch schon an die allgemeinen Hinweise, die Sie +bei der Klausur am 10.02.05 beachten müssen.

+ +
  + + + \ No newline at end of file -- cgit v1.2.3