summaryrefslogtreecommitdiffstats
path: root/Bachelor/Prog2/Prakt4/index.htm
diff options
context:
space:
mode:
Diffstat (limited to 'Bachelor/Prog2/Prakt4/index.htm')
-rw-r--r--Bachelor/Prog2/Prakt4/index.htm170
1 files changed, 170 insertions, 0 deletions
diff --git a/Bachelor/Prog2/Prakt4/index.htm b/Bachelor/Prog2/Prakt4/index.htm
new file mode 100644
index 0000000..b94d773
--- /dev/null
+++ b/Bachelor/Prog2/Prakt4/index.htm
@@ -0,0 +1,170 @@
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>Praktikum 3</title></head>
+
+<body>
+
+<table border="1" cellspacing="0" width="100%">
+<caption>&nbsp;</caption>
+
+<tbody><tr>
+<td bgcolor="#efefde" width="25%">FH Darmstadt&nbsp;
+<br>FB Informatik&nbsp;
+<br>Prof.Dr. H.P.Weber</td>
+
+<td>
+<center><font size="+3">Programmieren II&nbsp;</font>
+<br><font size="+3">Praktikum</font></center>
+</td>
+
+<td bgcolor="#efefde" width="25%">
+<center><font size="+4">4</font></center>
+</td>
+</tr>
+</tbody></table>
+
+<br>
+<table border="1" width="100%">
+<tbody><tr valign="top">
+<td>Ziel:</td><td>
+Sie sollen die Datenstruktur Baum in Form einer Template-Klasse anwenden können.
+</td>
+</tr>
+</tbody></table>
+
+<br>
+<table border="1" cellspacing="0" width="100%">
+<tbody><tr>
+<td colspan="2">
+<h3 align="left">
+<b>1&nbsp;&nbsp;&nbsp; Wörterliste</b></h3>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+Zu einer gegebenen, beliebigen Textdatei soll eine Liste der darin
+auftretenden Wörter erstellt werden. Alle Wörter werden dabei
+alphabetisch sortiert in eine zweite Textdatei ausgegeben. Jedes
+Wort soll nur einmal in der Liste wiedergegeben werden; zusätzlich
+soll angegeben werden, wie oft es in der Ursprungsdatei vorkommt. Die Einträge
+in der Ausgabedatei sollen formatiert sein (s. Beispiel). Auf der Konsole soll
+außerdem die Gesamtzahl der Wörter und die Anzahl der unterschiedlichen in der Eingabedatei
+auftretenden Wörter ausgegeben werden.
+<br>Ein Beispiel :
+</td>
+</tr>
+</tbody></table><table bgcolor="#fafaef" border="1" cols="2" width="100%">
+<tbody><tr bgcolor="#efefde">
+<td bgcolor="#efefde"><i>Eingabedatei:</i></td>
+
+<td bgcolor="#efefde"><i>Ausgabedatei:</i></td>
+</tr>
+
+<tr>
+<td width="60%">Zu einer gegebenen, beliebigen Textdatei soll eine Liste der darin
+auftretenden Wörter erstellt werden. Alle Wörter werden dabei
+alphabetisch sortiert in eine zweite Textdatei ausgegeben.</td>
+
+<td><tt>Alle..........................1</tt>
+<tt>Liste.........................1</tt>
+<tt>Textdatei.....................2</tt>
+<tt>Wörter........................2</tt>
+<tt>Zu............................1</tt>
+<tt>alphabetisch..................1</tt>
+<tt>auftretenden..................1</tt>
+<tt>ausgegeben....................1</tt>
+<tt>beliebigen....................1</tt>
+<tt>dabei.........................1</tt>
+<tt>darin.........................1</tt>
+<tt>der...........................1</tt>
+<tt>eine..........................2</tt>
+<tt>einer.........................1</tt>
+<tt>erstellt......................1</tt>
+<tt>gegebenen,....................1</tt>
+<tt>in............................1</tt>
+<tt>soll..........................1</tt>
+<tt>sortiert......................1</tt>
+<tt>werden........................1</tt>
+<tt>werden........................1</tt>
+<tt>zweite........................1</tt></td>
+</tr>
+</tbody></table>
+
+<br>
+
+
+
+
+<p><b>Technische Hinweise:</b>
+</p><ul>
+<li>
+ Verwenden Sie die Template-Klasse <tt><b>Tree</b></tt> aus der Vorlesung, indem Sie im
+Anwendungsprogramm mit einem <tt><b> Tree&lt;string&gt;</b></tt> - Objekt arbeiten.
+</li>
+<li>
+Führen Sie ein Attribut <tt><b>frequency</b></tt> in die Template-Klasse
+<b> <tt>TreeNode</tt></b> ein und erweitern Sie die
+Methode <b><tt>insertNodeHelper</tt></b> an der
+passenden Stelle, um mehrfach vorkommende Wörter durch Inkrementierung von <b><tt>frequency</tt></b>
+zu zählen.
+</li>
+<li>
+Modifizieren Sie die
+Methode <b><tt>inOrderHelper</tt></b> so, dass
+die Wörter mit ihren Häufigkeiten nicht auf die Konsole, sondern richtig
+formatiert in die oben erwähnte Ausgabedatei geschrieben werden.
+</li>
+<li>
+Eine Sortierung nach dem eingebauten Code ASCII reicht aus (Sortierung nach
+DUDEN ist nicht verlangt). Weiter ist nicht verlangt, echte Wörter
+zu erkennen ("<tt>gegebenen,</tt>" [incl. Komma] gilt in dem Beispiel oben
+auch als ein Wort).
+</li>
+<li>
+Verwenden Sie für die Demonstration Ihres Programms
+während des Praktikums <a href="http://www.fbi.fh-darmstadt.de/%7Eh.p.weber/Lehrveranstaltungen/PG2_Praktikum/Lab4/Max.txt">diese Datei</a>.
+</li>
+</ul>
+
+
+
+
+<br>
+<table border="1" cellspacing="0" width="100%">
+<tbody><tr>
+<td>
+<h3>
+<b>2&nbsp;&nbsp;&nbsp; Verbesserte Wörterliste (fakultativ)</b></h3>
+
+<p>Verbessern Sie Ihr Programm aus Aufgabe 1, indem Sie echte Wörter erkennen
+(also Satzzeichen und Ziffern entfernen) und eine wirkliche lexikalische
+Sortierung vornehmen (also groß und klein geschriebene Wörter nicht separat
+sortieren sowie die Umlaute richtig einsortieren). Realisieren Sie zur Lösung dieser Aufgaben
+eine Klasse <tt><b>GermanWord</b></tt>,
+die es Ihnen erlaubt, die Template-Klassen aus Aufgabe 1 unverändert zu
+übernehmen, indem Sie im Anwendungsprogramm jetzt mit einem <tt><b> Tree&lt;GermanWord&gt;</b></tt> - Objekt arbeiten.
+Ihre <tt><b>GermanWord</b></tt>-Klasse sollte folgende Methoden enthalten:
+</p><ul>
+<li>
+Der Konstruktor übernimmt einen <tt><b>string</b></tt> und entfernt alle Satzzeichen und
+Ziffern, so dass nur noch echte Wörter übrig bleiben. Verwenden Sie hierzu
+Methoden
+der <tt><b>string</b></tt>-Klasse
+wie <tt><b>find_first_of</b></tt> und <tt><b>replace</b></tt>.</li><li>
+Die überladenen Operatoren <tt><b>operator&lt;</b></tt> und <tt><b>operator&gt;</b></tt> sorgen dafür, dass groß und
+klein geschriebene Wörter nicht wie bei der einfachen ASCII-Code-Sortierung separat
+sortiert werden und dass die Umlaute richtig
+einsortiert werden (also z.B. 'ä' unter 'a').</li><li>
+Eine Methode <tt><b>isEmpty</b></tt> sollte vorhanden sein, damit im Anwendungsprogramm nur
+nicht-leere <tt><b>GermanWord</b></tt>-Objekte (also keine, die nur einen
+leeren <tt><b>string</b></tt> enthalten) in den <tt><b>Tree</b></tt> eingefügt werden können.</li><li>
+Ein cast-Operator <tt><b>operator string</b></tt>&nbsp; soll vorhanden sein, damit der <tt><b>Tree</b></tt> aus
+Aufgabe 1 unverändert übernommen werden kann (und <tt><b>GermanWord</b></tt>-Objekte wenn nötig
+implizit in <tt><b>string</b></tt>s gewandelt werden).</li></ul></td>
+</tr>
+</tbody></table>
+
+
+</body></html> \ No newline at end of file