summaryrefslogtreecommitdiffstats
path: root/Bachelor/Prog1/Prakt6/index.htm
diff options
context:
space:
mode:
Diffstat (limited to 'Bachelor/Prog1/Prakt6/index.htm')
-rw-r--r--Bachelor/Prog1/Prakt6/index.htm249
1 files changed, 249 insertions, 0 deletions
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 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>Praktikum 6</title>
+</head>
+
+<body>
+
+<table BORDER CELLSPACING=0 WIDTH="100%" >
+<caption>&nbsp;</caption>
+
+<tr>
+<td WIDTH="25%" BGCOLOR="#EFEFDE">FH Darmstadt&nbsp;
+<br>FB Informatik&nbsp;
+<br>Prof.Dr. H.P.Weber</td>
+
+<td>
+<center><font size="+3">Programmieren I&nbsp;</font>
+<br><font size=+3>Praktikum</font></center>
+</td>
+
+<td WIDTH="25%" BGCOLOR="#EFEFDE">
+<center><font size=+4>6</font></center>
+</td>
+</tr>
+</table>
+
+<br>
+<table border WIDTH="100%" >
+<tr VALIGN=TOP>
+<td>Ziel:</td><td>
+Sie sollen problemangepasste Datentypen als Klassen entwerfen und ein
+ Anwendungsprogramm als System aus Objekten implementieren k&ouml;nnen.&nbsp;
+</td>
+</tr>
+</table>
+
+<br>
+<table BORDER="1" CELLSPACING=0 WIDTH="100%" height="608" >
+<tr>
+<td COLSPAN = "2" height="60">
+<h3 ALIGN = "left">
+<b>1&nbsp;&nbsp;&nbsp; Erwärmen eines Tiefkühlgerichts in einer Mikrowelle
+</b>
+</h3>
+
+Realisieren Sie eine Klasse <i>Microwave</i> sowie eine Klasse <i>FrozenMeal</i>:&nbsp;
+</td>
+</tr>
+
+<tr>
+<td WIDTH="370" height="269">
+<table BORDER COLS=1 BGCOLOR="#EFEFDE" ALIGN="center">
+<tr>
+<td>
+<center><b>Microwave</b></center>
+</td>
+</tr>
+
+<tr>
+<td>- power : int&nbsp;
+<br>- volume : int
+<br>- period : double</td>
+</tr>
+
+<tr>
+<td><i>Constructor</i>(a certain volume)&nbsp;
+<br><i>Destructor</i>()
+<br>+ morePower() : void
+<br>+ lessPower() : void
+<br>+ setPeriod(a certain period) : void&nbsp;
+<br>+ heatMeal(a certain FrozenMeal) : void
+<br>+ getPower() : int
+<br>+ getPeriod() : double</td>
+</tr>
+</table>
+</td>
+
+<td WIDTH="400" height="269">
+<table BORDER="1" COLS=1 BGCOLOR="#EFEFDE" ALIGN="center">
+<tr>
+<td>
+<center><b>FrozenMeal</b></center>
+</td>
+</tr>
+
+<tr>
+<td>- name : char* (or string)
+<br>- volume : int
+<br>- temperature : double
+<br>- coeffizient : double</td>
+</tr>
+
+<tr>
+<td><i>Constructor</i>(a certain name, a certain volume)&nbsp;
+<br><i>Destructor</i>()
+<br>+ changeTemperature(a certain temperature) : void
+<br>+ getName() : char* (or string)
+<br>+ getVolume() : int
+<br>+ getCoeffizient() : double
+<br>+ getTemperature() : double</td>
+</tr>
+</table>
+</td>
+</tr>
+
+<td COLSPAN = "2" height="267">
+<br>
+Besonderheiten der Methoden sind:
+<ul>
+<li>
+Durch morePower() und lessPower() soll die Leistung im Bereich
+von minimal 200 W bis maximal 1000 W in Schritten von 200 W ge&auml;ndert
+werden.</li>
+
+<li>
+Das Erw&auml;rmen eines Gerichtes wird durch folgenden Zusammenhang beschrieben:<br>
+Temperatur = Anfangstemperatur + ( Koeffizient * Leistung * Zeitdauer
+/ Volumen)</li>
+
+<li>
+Als Erw&auml;rmungskoeffizient soll der Wert f&uuml;r Wasser verwendet
+werden: Koeffizient = 0.24 cm<sup>3</sup> * Grad / Ws.</li>
+
+<li>
+Achten Sie auf die Einheiten: am einfachsten ist es, wenn Volumen von Mikrowelle
+und Tiefkühlgericht&nbsp;in cm<sup>3</sup> vom Anwendungsprogramm übernommen
+werden.</li>
+
+<li>
+Beim Erzeugen soll ein Tiefk&uuml;hlgericht eine Temperatur von -18 Grad
+haben.</li>
+
+<li>
+Die Destruktoren sollen den Endzustand des jeweiligen Objektes am Bildschirm
+ausgeben.</li>
+
+<li>
+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.</li>
+ </ul>
+<p>Realisieren Sie zum Testen Ihrer Klassen ein <b>Anwendungsprogramm</b>, das mit verschiedenen
+Tiefk&uuml;hlgerichten und einer geeigneten Mikrowelle die vorhandenen Methoden benutzt.
+</td>
+
+</table>
+
+<br>
+
+<table BORDER="1" CELLSPACING=0 WIDTH="100%" >
+<tr>
+<td>
+<h3>
+<b>2&nbsp;&nbsp;&nbsp; Tic-Tac-Toe</b></h3>
+
+<p>Entwickeln Sie einen Datentyp <font face="Courier New"><b>TicTacToe</b></font>,
+der es ermöglicht ein vollständiges Programm zum Spielen von Tic-Tac-Toe zu
+schreiben.
+<ul>
+<li>Die Klasse <font face="Courier New"><b>TicTacToe</b></font> soll als <b><font face="Courier New">private</font></b>
+ Attribut
+ ein <b><font face="Courier New">char</font></b>-Array mit neun Elementen enthalten.
+</li>
+<li>
+Der Konstruktor soll ein leeres Spielfeld initialisieren.
+</li>
+<li>
+Die <font face="Courier New"><b>public</b></font> Methode <font face="Courier New"><b>playOneGame</b></font>
+soll den Ablauf eines Tic-Tac-Toe-Spieles realisieren. Dabei soll sie
+verschiedene <b><font face="Courier New">private</font></b> Methoden aufrufen,
+die die verschiedenen Teilaufgaben während des Spielablaufs (Eingaben,
+Ausgaben, Ermitteln eines Siegers, Realisierung einer Strategie für die
+Computerzüge) erledigen.
+</li>
+<li>
+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 <b><font face="Courier New">X</font></b> in das
+entsprechende Kästchen gesetzt werden, wenn der zweite Spieler zieht, soll ein <b><font face="Courier New">O</font></b>
+in das entsprechende Kästchen gesetzt werden. Es darf nur in ein leeres
+Kästchen gezogen werden.
+</li>
+<li>
+Nach jedem Zug soll bestimmt werden, ob ein Spieler gewonnen hat oder ob das
+Spiel unentschieden endete.
+</li>
+</ul>
+
+</td>
+</tr>
+</table>
+
+<br>
+
+<table BORDER="1" CELLSPACING=0 WIDTH="100%" >
+<tr>
+<td>
+<h3>
+<b>3&nbsp;&nbsp;&nbsp; Große Integer-Zahlen (fakultativ)</b></h3>
+
+<p>Entwickeln Sie einen Datentyp <font face="Courier New"><b>Integer40</b></font>,
+der ein Array mit 40 Elementen benutzt, um ganze Zahlen mit bis zu 40 Dezimalstellen zu
+speichern.
+<ul>
+<li>Implemetieren Sie die Methoden <b><font face="Courier New">read</font></b>,
+<b><font face="Courier New">write</font></b>, <font face="Courier New"><b>add</b></font>,
+<font face="Courier New"><b>subtract</b></font>.
+</li>
+<li>
+Für den Vergleich von <font face="Courier New"><b>Integer40</b></font>-Objekten
+sollen die Methoden <font face="Courier New"><b>isEqual</b></font>, <font face="Courier New"><b>isNotEqual</b></font>,
+<font face="Courier New"><b>isGreaterThan</b></font>, <font face="Courier New"><b>
+isSmallerThan</b></font>,
+<font face="Courier New"><b>isGreaterOrEqual</b></font>,
+<font face="Courier New"><b>isSmallerOrEqual</b></font>
+zur Verfügung stehen. Jede dieser Methoden ist eine Prädikat-Funktion, die <font face="Courier New"><b>true</b></font>
+zurückgibt, wenn die entsprechende Beziehung zwischen zwei Objekten stimmt und <font face="Courier New"><b>false</b></font>,
+wenn sie nicht stimmt. Realisieren Sie außerdem eine Prädikat-Funktion <font face="Courier New"><b>
+isZero</b></font>.
+</li>
+</ul>
+<p>Testen Sie Ihre Klasse in einem <b>Anwendungsprogramm</b>, das die
+vorhandenen Operationen mit geeignet gewählten <font face="Courier New"><b>Integer40</b></font>-Objekten
+ausführt.
+</td>
+</tr>
+</table>
+
+<br>
+
+<table BORDER="1" CELLSPACING=0 WIDTH="100%" >
+<tr>
+<td>
+<h3>
+4<b>&nbsp;&nbsp;&nbsp; Übungsklausur (fakultativ)</b></h3>
+<p>
+Als Klausurvorbereitung können Sie die <a href="PG1Klaus.htm">PG 1-Klausur vom letzten Jahr</a> bearbeiten.
+Am besten halten Sie sich dabei auch schon an die <a href="Hinweise.pdf">allgemeinen Hinweise</a>, die Sie
+bei der Klausur am 10.02.05 beachten müssen.</table>
+
+<br>&nbsp;
+
+</body>
+</html> \ No newline at end of file