diff options
Diffstat (limited to 'Bachelor/Prog2/Prakt4/index.htm')
| -rw-r--r-- | Bachelor/Prog2/Prakt4/index.htm | 170 |
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> </caption> + +<tbody><tr> +<td bgcolor="#efefde" width="25%">FH Darmstadt +<br>FB Informatik +<br>Prof.Dr. H.P.Weber</td> + +<td> +<center><font size="+3">Programmieren II </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 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<string></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 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<GermanWord></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<</b></tt> und <tt><b>operator></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> 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 |
